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.
Adds support for decoding and encoding data with missing value
indicators.

As part of the a whole bunch of refactoring was also done.

* Added support for `none` string to indicate missing values for both
  Encode and Decode.
* Removed decode sources. Instead the only decode source is now a list
  of strings.
* Changed encode to encode to a list of strings.
* Changed decode to only decode a list of strings.
* Removed `Val`s.
* Removed `Cell` it wasn't used anywhere and depended on `Val`.
* Added documentation to Encode and Decode.
* Added test for encode macro.
Adds default clean.
Removes superfluous imports from FieldsMacroSpec.
Fixes intermittent runtime exceptions in OptionDecode.

OptionDecode was using WeakTypeTag from the new scala refelction API. In
2.10 this is not thread safe and which can cause runtime
exceptions. Changed the method to use Manifest instead.
custom_partitions
Adding more partition functions
Formatting changes and removing string conversion
Fixing tuple
clarify upload design
explain file paths and better names
added some more details about file paths