Fix normalized has_many caching

The change to only cache attributes and associations of ActiveRecords
missed normalized (non-embedded) has_many associations. Specifically,
the cached IDs were not actually stored in memcache.

This stores cached ID arrays for normalized has_many associations
alongside the attributes and embedded associations in memcache. This
change requires incrementing the CACHE_VERSION.

As part of this change, the fast path used for the first fetch of a
record has been removed, as it hid the problem in testing.
Add normalized has_many performance tests
Precache normalized associated records in FetchHit runs

Also "cache" result of resolve_cache_miss in fetch to avoid
record_from_coder overhead.
Avoid AR lifecycle callbacks when reinflating records from the cache
Use init_with when initialize callbacks registered
Merge pull request #86 from Shopify/fix_normalized_has_many_caching

Fix normalized has_many caching
Workaround serialized attributes bug

If a record has serialized attributes, record.init_with(coder) will modify coder to wrap the serialized attributes. When MemoizedCacheProxy is used, the coder persists for the duration of the request, so later calls to fetch will return the same coder instance and record.init_with(coder) will again modify the cached coder by re-wrapping the already wrapped serialized attributes.

This works around the modification of the cached coder by duplicating both the coder hash and its "attributes" hash before calling init_with if the record type has serialized attributes.
Merge pull request #88 from Shopify/workaround_serialized_attributes_bug

Workaround serialized attributes bug
Bump the cache version

Reflect recent changes with a new cache version.
Update serialization format test fixture
Bump the gem version, update changelog & README
Merge pull request #89 from Shopify/bump_cache_version

Bump the cache version
Update README.md
Update README.md
add __LINE__ + 1 on evals to make easier to debug
tests: Fix a duplicate test class name that doesn't match the filename.

This was the real cause of the redefined NAMESPACE constant, and could
cause other weird issues since setup will be overriden by one of the class
definitions.
Add IdentityCache.cache_namespace which can be a string or proc.
Merge pull request #91 from Shopify/cache-namespace-proc

Add IdentityCache.cache_namespace which can be a string or proc.
Relaxed activerecord and activesupport dependencies for rails 4
Update README.md