This implements VisualDensity changes for text fields*. By default, the layout of the text field does not change.
If the ThemeData.visualDensity is set to a value other than zero, then the density of the UI will increase or decrease. See the VisualDensity docs for more information.
(*In reality, the changes are on the InputDecorator class, not on the text field.)
I also fixed a problem that I think I found with _Decoration where it doesn't compare isDense or isCollapsed as part of its operator==.