Getting rid of the C style decoding for fancy C++11 style using default template values.
This allows for more generic decode functions for tuples, etc.

After some thought, I have decided to attempt to get away from the heirarchy of objects
decoders that exist in Ymir today.  Hopefully I can resist complexity and keep the
C library lean-and-mean this time around.