Change how field sizes are estimated during costing to be based on TClass

instead of AkType, which is going away.

* Split MBinary into a common base class TBinary with most of the behavior, but not the concrete instances.
* Use TClass methods to estimate the size. This is tuned to be exactly compatible with the old algorithm so that none of the costs in the existing tests change, which would just be noise at this point.
* In particular, MNumeric (the integer types) all claim to be the size of a long.
* Conversely, fixes MBigDecimal not to claim to be fixed sized 8 bytes, which it is not.