Type/Builder: allow to have custom generic type class.

It's possible to have custom GenericEntity class, but it's not possible to have the same with GenericType. This pull request changes it.