Add block wrapper for shm

The block is a i/o wrapper for shm.  This makes it easy to do basic
read/write operations with common syntax.  It also takes care of
basic offest and length calculations for both read and write.
Add object that can send and receive asynchronously.

The mailbox is essentially just that.  When you send, you are putting
a message into the mailbox.  When you receive, you wait (asynchronously)
for something to show up, and then emit an event.