Add bindings for ThriftCatalog and ThriftCodecFactory

This is mainly to allow binding of custom codecs that need a ThriftCatalog injected. Was trying to get this catalog via injecting a ThriftCodecManager and using codecManager.getCatalog(), but this doesn't work if you want your bound custom codec to be in the internal codec set used to create the ThriftCodecManager (because it creates a dependency loop).
Merge pull request #106 from andrewcox/custom-codecs-by-class-2

Add bindings for ThriftCatalog and ThriftCodecFactory