Adopted a more sensible typedef naming schema
* added class-internal typedef's for the template type where useful
* modified test cases to match the new typedef naming schema
* typedef's are written in lowercase, words are divided by underscores
** e.g. tuple_type if we define a 'sub-tuple' type or carbon_copy if we define the CarbonCopy template type of a tuple