Implement Tuple Name Differences in XML/JSON

User rggjan requested that tuples provide a different name for each
element in this issue: https://github.com/USCiLab/cereal/issues/140.

This fix modifies tuple.hpp to generate tuple names in the order which
they are are placed in the tuple.  Note that this will appear to be a
countdown (tuple_element2, tuple_element1, tuple_element0) since tuples
are generated in reverse order.

Signed-off-by: Erich Keane <erich.keane@verizon.net>
Changed tuple to generate names compile-time

tuple names are now generated at compile time.  Additionally,
a breaking-change of re-ordering tuples to be from first-last
rather than last-first has been included.