MVar: initial implementation.

I've started an initial implementation of MVars. We can change the name to anything you like later on before you pull. So far I've got there three foundational operations. I'll look at adding support for more compound operations like mutate, and add functionality like Dereferenceable soon.

Don't pull yet, but putting this as a PR so you can review and comment as I go.