Caching

Added lots of caching and now filter on client side instead of server side. Starting this PR now, but the following still needs to be done:
* [x] use ted's cache
* [x] Move xEntityManager tests to the Manager (easy)
* [x] Make sure filtering still works
* [x] cache categories
* [x] clean up duplicate code
* [x] Fix all the bugs i'm sure I created
* [x] javadoc
* [ ] Create & fix `PollPusher` tests

I also moved some stuff around (lots) and refactored the models package as it was getting crowded