Template Metaprogramming: identity class

This is mostly just an example PR to refer to. I did this entirely via the online interface.