Store models so they never get out of sync.

I was experiencing a bug where my cache was overriding the nested objects of my collection. This fix allows me to specify a 'cacheKey' on my collection, which then keeps all models with the same id and collection type in sync with each other.

(sorry there are no tests, I am rushing to get this out.. but thought i would share anyway.)