Separate out the JPA Persistence Repository from Domain Core

Not all Domains are JPA based so we should keep the Core module
clean of specific Repository implementation details.

Issue: #46