Use set.discard instead of set.remove where appropriate
run handlers in paralell with optional ordering metadata

Todo think about:
	Running each client bind for a handle() in a seperate greenlet
		...and making them be seperate units of ordering when you give a BoundHandler to before/after.
	Having unregister block until currently running handlers finish (the guarentee being that afterwards
		no handlers for (client, instance) are running or will run)
Add some test scripts as "examples"
herp: examples
Use sync=True for internal handlers where needed
handler: Minor edit to ensure all calls to callback go via __call__.

Makes things easier for subclasses.
handler: Remove stacking behaviour, more trouble than it's worth
handler: Add a _handle hook for subclasses to customise args to callback
__init__: Import useful things so users don't need to find the right module