Add possibility to use not only Long for id.

Unicorn classes previously typed with [something <: BaseId] now are typed as [something <: MappedToBase].
Using MappedToBase instead MappedTo[T] allows to omit type T of underlying value and therefore to keep methods signature unmodified.
 The MappedToBase class is a superclass of BaseId so all previously written code should work.
 Add test checking correct work of UUID id
There wasn't any better place. Here is the closest place where there are used.

It because we are defining here `UserId` with companion object. 
It is impossible to resolve those implicit conversion on unicorn part.