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:
* [ ] use ted's cache
* [ ] Move xEntityManager tests to the Manager (easy)
* [ ] Make sure filtering still works
* [ ] cache categories

I also moved some stuff around (lots) and refactored the models package as it was getting crowded