Improve and fix JDBC rating DAO

Several improvements and fixes for the JDBC rating DAO:

- Do not allow the DAO to be injected (for safety)
- Add basic unit tests for it using Apache Derby
- Fix bug(s) revealed by review and the unit tests
- Add caching for user/item queries
- Use a builder to set up the JDBC rating DAO