Added support for Option to Macros

The encode and decode macros now support the Option type.

This closes #144.
It is mildly confusing that the two customer thrift definitions (one in example, one in test) are different. This is making them even more different than they were before. Can we rename one of the example customer types?