Moved eviction logic to service.
Avoid having GC to de-reference collapsed object.
Never update the expiration from a collapsed object.
Fixed test assertion of pruning cached properties.
Isolated all test cases of cache GC.
Merge pull request #21 from troopjs/feature/cache-service

Move cache eviction to service along with various bug fixes in cache component.