Introduce MemoryPolicy API

Part 1 of #438 
Do we have tests for skipping writing to the cache that need copied as well?