Initial pass at adapters.

I don't expect this to be done, but I wanted to get some early feedback.

Particularly, should the adapters expect that all the players are well behaved? 
Also, will need to give some thought to the differences in error propagation semantics.

Let me know what you think and I'll just keep adding to this PR.