-Added support for serializing custom IConvertible values
-Refactored away dependency on IConvertible