DRILL-7143: Support default value for empty columns
Modifies the prior work to add default values for columns. The prior work added defaults
when the entire column is missing from a reader (the old Nullable Int column). The Row
Set mechanism now will also "fill empty" slots with the default value.
Added default support for the column writers. The writers automatically obtain the
default value from the column schema. The default can also be set explicitly on
the column writer.
Updated the null column mechanism to use this feature rather than the ad-hoc
implemention in the prior commit.
Semantics changed a bit. Only Required columns take a default. The default value
is ignored or nullable columns since nullable columns already have a file default: NULL.
Other changes:
* Updated the CSV-with-schema tests to illustrate the new behavior.
* Made multiple fixes for Boolean and Decimal columns and added unit tests.
* Upgraded Fremarker to version 2.3.28 to allow use of the continue statement.
* Reimplemented the Bit column reader and writer to use the BitVector directly since this vector is rather special.
* Added get/set Boolean methods for column accessors
* Moved the BooleanType class to the common package
* Added more CSV unit tests to explore decimal types, booleans, and defaults
* Add special handling for blank fields in from-string conversions
* Added options to the conversion factory to specify blank-handling behavior.
CSV uses a mapping of blanks to null (nullable) or default value (non-nullable)
closes #1726