Avoid prototype property name conflict in cache key

The value that is contained as key of `Object.prototype` couldn't be dasherize.

For examples:
``` javascript
Ember.String.dasherize('toString'); // function toString() { [native code] }
```

This reason is that cache is object (not Hash or Map) inherited
`Object.prototype` as its property.

`Object` should not be used as key of cache that accept any keys from user
input.
So I used prefix `:` as the key of cache.