Updated class hierarchy to better reflect the true symbolic nature and reduce code redundancy.  Officially decided that multiple inheritance is appropriate for these reasons.
Added more control in type_convertor for converting types, especially in regard to handling generics.  Also made the method signatures make a bit more sense by adding a new constructor to set defaults, rather than passing them into the methods).