Add: CounterCache feature to hasMany models

as discussed in issue #1879 
Superb! Will fix