Mark 'monad::join' derived in terms of bind as constexpr.
Make Identity<T> Orderable for Orderable Ts.

Also, both equality and comparison operators for Identity now return
the result of T::operator==, instead of plain bool. This because
neither Eq nor Orderable require their operators to reutrn booleans,
only types contextually convertible to such.
Add unit tests for Eq<Identity> and Orderable<Identity>.