Add abstract Ddl Column classes to handle variable length data types
Change floating point Ddl columns to inherhit from
AbstractPrecisionColumn
Change character Ddl column classes to inherhit AbstractLengthColumn
Removed unused $length property from Integer Ddl column class
Reduce code duplication in temporal ddl column classes

Fixes missing DEFAULT value in expression data
Fix BLOB Ddl column erroniously allows length, adds Binary with length
Reduce code duplication in Booloan Ddl column class

Purposely ignore $isNullable from parent by resetting it in
getExpressionData()
Reduce code duplication in the Text Ddl Column class
Add Ddl column classes to support DATETIME, TIMESTAMP, and VARBINARY
Adjust Dbl Column class test expectations

* NOT NULL should be in the spec like DEFAULT
* Type is never in the spec (always second param)
* Float column should have FLOAT type
Move NOT NULL into the spec for Ddl Columns
Allow length based column types to be constructed without length
Move the Integer column construction signature to the parent Column
Use the parent Column constructor for the length/precision abstracts
Change the getLengthExpression method visibility to protected
Add tests for the abstract length classes.
Remove length tests from Binary column, tested in abstraction
Correct copy/paste error in class name of Timestamp Ddl Column
Add test for the Datetime, Timestamp, Varbinary Ddl Column classes
Remove extension requirement on SqlSrv test that doesn't need it