Calculate the width of a table's columns more accurately (#4723)
This change updates the column width calculations for `TreeTable` to
waste less space in tree columns. Previously, we were using a hard coded
value of 500 plus the indent of the deepest level to determine the overall
width of the tree column, which often left a significant amount of empty
space.
Column width calculations for tree columns now assume that the contents
of each node will be text with monospaced fonts and uses the length of
the maximum displayed string plus its indent levels.
Fixes https://github.com/flutter/devtools/issues/2047