Add a gateway

This branch will add a gateway to the memory adapter. It will also produce a prototype interface for `#update` on the adapter.