Support user defined types in C* 2.1

User defined types are coming in C* 2.1, and it looks like it's going to be piggy backed on the custom types. This patch adds support for decoding custom types, but I'll leave it open so that we can get full user defined types support working once it's more clear how it's supposed to work.