Add monad instance to Identity type.

This will allow e.g. various concrete monads to be implemented in terms
of their transformer instead, like:

template<typename T>
using SomeMonad = SomeMonadT<Identity<T>>;

There are also other potential uses for it.