Add: CounterCache feature to hasMany models

as discussed in issue #1879 
@cusspvz what's the semantic difference? I honestly don't care so i'd say go for whatever people are usually most familiar with.