Adds optional type support to EncodeMacro.
Adds optional type support to ScroogeDecodeMacro.
Bumps Humbug version to include support for option type.
Adds optional type support to HumbugDecodeMacro.
Changes Customer example to use an optional type.

Also tidied up CustomerSpec and removed the codec test since it is
already checked more thoroughly in the macros package.
Changes Customer thrift struct to Types in maestro-test.

Replaces Customer thrift in maestro test with the same thrift struct
that the humbug tests use. This increases the flexibility of the thrift
struct and it avoids confusion with the Customer thrift struct used by
maestro-example.
Factors out the common code around dealing with option types into a
library function.