Added class to support tuple typing

I often find the case where I want something simple as a tuple but with
labeled variables. The std::get<0>(tup) accessors are horrible and it's
really not important for the reader or writer to keep track of which
member is first or second or nth.

Henced introduced with help of some horrible macros a way to easy define
a dervived type from tuple. This is only ok since we do not add any data
members, just accessors. Another benefit of using tuple typing instead
of creating a plain struct is that we get default initializers,
operator=, operator== and operator<, etc. It is also compatible with
every function working on plain tuples.

Sweet!