Add: CounterCache feature to hasMany models

as discussed in issue #1879 
The rest of the code deals with setting up relations.
This is a plugin, you don't have to follow the pattern if it doesn't make sense - Make it as concise as possible :)