Add: CounterCache feature to hasMany models

as discussed in issue #1879 
@janmeier I rewrote it now, didn't know about the .return() keyword, thanks!