Use reflection to handle Thrift types nested inside containers (list, map).
This fixes couple of known issues : 
  1. could not distinguish between a string and buffer inside a container
  2. could not find thrift class for a thrift exception in a container
unit tests for : 
 - 'binary' inside a container
 - exception inside a container
 - boolean type in a Union
Merge pull request #321 from rangadi/generic_thrift_struct

Use reflection to handle Thrift structs better