Changed how tubes interact with blocks
* If you make a new payload type, an IPayloadHandler should be
registered in the HandlerRegistry
* IPayloadHandlers tell tubes how they can inject and extract payloads
* Payloads are now registered in PayloadRegistry
* Payload renderes are no longer supplied inside the payload
* InteractionHandler is used to determine if tubes should connect to a
block and get handlers for that block
* IInventoryProvider is now IInterfaceProvider which can be used for any
interface, not just inventories