Add: CounterCache feature to hasMany models

as discussed in issue #1879 
You should proably also have test that checks that the value is actually saved in that attribute. Something like the tests below, but with `expect(user.countDemGroup).to.equal...` instead. Also, shouldn't it be groupCount ? :)