Improved the repository pattern by having both Factory 
and Gateway classes.

A factory which creates target domain class from the jooq's Record Type
and also creates a RecordType equivalent from target domain.

A Gateway/DAO which provides data-access level operations.