merge MMcM: Track TInstance in plan parameters

Merge pull request #1128 from MMcM/sql-layer/sql-param-types3
https://github.com/FoundationDB/sql-layer/pull/1128
Make sure collation is included in translated type.
New definitions of typed AIS objects.
Update callers for new APIs.
Add a somewhat more compatible way of displaying type description.
Similarly update tests.
Remove validation for types being static and associated internal error.
A few leftover importers of types.
Get rid of charset & collation object and its interning.
Remove the rest of the Type(s) class.
Bring back validation, but in a separate class now.
Update tests. Mostly formatting changes due to few type objects.
Standardize more on charset / collation ids than names, since that's what TInstance does. The names are for externalization.
Update tests.
Need to allow more join types. Widest of most ints is BIGINT, but of BIGINT itself it's DECIMAL.
Keep TIMESTAMP meaning DATETIME for now, as before.
Make char literals VARCHAR not CHAR for now.
More plumbing needed to get correct error message for unsupported column type.
Put DDL generator back to more the way it was.
Adjust expected formatting to match current.
Now have the necessary machinery to format types in the first line of OperatorCompilerTest consistently.
Can now handle BLOB consistently: allowed for INSERT as string or comparison with string, but fundamentally binary.