Add the identity type.

  This is the type mentioned in #2. The interface and implementation are
  not even close to be completed or actually fully implemented, but what
  is here is a start. The type traits mentioned in #8 will be
  implemented before all of the identity type are, as some templated
  functions will be used to 'narrow down' types and information for the
  compiled functions.

Add lib/identity.cpp to CMakeLists.txt