move countercache to behavior

RFC1: move counterCache to a behavior
Initial draft, needs cleanup and docblocks. Thoughts?

RFC2: We could also have created, modified, updated handled by a behavior?