Automatically fall back to Marshal when marshaling tuples.

This fix allows us to fields nest lattice objects inside Ruby objects.
Rather than recursively traversing the field to find out whether it contains
nested lattices, this code attempts to marshal it using MessagePack and falls
back to Marshal if `to_msgpack` throws an exception.

To support this, the MessagePacked tuple is built up incrementally using
a MessagePack::Packer and a StringIO.
Merge pull request #295 from JoshRosen/marshal-fallback

Automatically fall back to Marshal when marshaling tuples