Purge types 2

The great Types2 purge. This is 75% complete, but enough to remove the majority of the Types2 code use in the SQL layer/server. 
All of the Types3Switch and usePvalues instances have been removed.

All of the code in the optimizer APIs where there were passing the types2 and type3 items (e.g. Expressions and TPreparedExpressions) have been isolated to the Types3 only. 
Most of the Types2 functions, aggregaters, and converters have been removed. 

While most of this is deletions, there are some additions as well. 
PValueSources - does the conversions from PValue to Object or vice versa was updated to include more cases and better results for cases where there are not type2 intermediates. 

A number of the ITs had to be updated because they relied upon the Types2 row builder. With the change to Types3, which is a little more specific about the underlying java data types, the tests needed to be more exact about the types they were comparing for data and type checking. 

Things not done: 
- RulesTest and OperatorCompiler tests still have some .t3expected files. 
- Some interfaces which use Type2 things (e.g. AkType or ValueSource) are marked as @Deprecated. They still need to be removed. 
- Code still has some 329 references to AkType, which represents the last of the Types2 internals still left
- ais.model.Types() really needs to be using Types3 types, not AkType
- There are probably more things I'm still missing.