Switch DAOs to no longer be static

We will implement some caching in the next step in these DAOs
Split of FeedUser relevant queries from FeedDao to FeedUserDao
Implement caching feeds
Split of EntryUser related DAO functionality to its own DAO
Rely on cached feeds when building the tree
Make use of the cache for entries as well
Add an abstract parent class for all DAOs
Use caching in more places
Fix entities being put in the cache
Move hash() method to the abstract parent class
Allow queries for keys only
Implement caching for FeedUsers
Update the feedUserCache when a feedUser was created
Add custom error pages
Add very simple display of the cache stats
Rework caching so only entries get cached for now

So far they get get cached pretty well. To read over 50 entries we save
about 10k databasequeries. This should finally solve hitting the quotas
so quickly.