Favour JPA over Hibernate implementation

Persistence now takes place through use of the JPA EntityManager as opposed to the Hibernate Session
Server side unit tests have started to be implemented - work in progress
Favour Log4J over plain old java.util.Logger

- Add named queries to the product class
- Change table name of shopping cart class to lowercase for consistency
- Add UserDto class for client transfers
- Add method .asDto() to the User class to product the DTO
- Inject EntityManager
- Custom injector for Log4J logger
- Improve user/login method exception handling
- Implement the user/register REST API method
- Rename ProductService to ProductServiceImpl
- Rename UserService to UserServiceImpl
- User services now return the UserDto instead of User class to prevent sensitive data from being transferred