Add support for Struct, SQLData, SQLInput/SQLOutput and more coercion conformance

• Records are now serialized to/from special Record wrapper type
• Unify and simplify all coercion functions
• Coercion to bytes implemented
• Fix bug in constructing ArrayTypes correctly