Introduce MemoryPolicy API

Part 1 of #438 
Should be an `==` and `throw`.