Add: CounterCache feature to hasMany models

as discussed in issue #1879 
@cusspvz this is meant as something external, i've specifically asked author to code it so we can rip it out when the plugin system is complete :)