Explore high and low level APIs, and their interaction

I've created a pull request so we can discuss the code here.  I won't be working on it much, if at all, for a week or so.  But I can join in with the discussions.  I'm not actually intending to merge this branch into master. though.

This code works for me (running on the client on Ubuntu and the Minecraft server on my raspi).

What's interesting for me is the way in which the various pieces of code exert forces on each other.  Things like *If we want to make this nicer, we have to change that.*

What's exciting for me is that it actually works, and I now have a programming environment for raspberry pi Minecraft which I'm more comfortable with me.  There are of course quite a few itches to scratch.  I hope you'll help me find them.