(refactor) Change all the things

This PR is a wide-reaching, fundamental refactor to the way Iron
works.

It includes these changes, but probably more. I recommend reading the source
if you want an exhaustive list of changes. I will detail all of the changes
in a blog post in the near future.

- enter/exit -> before/after
- introduces Handler and removes special treatment of Chain
- Clone -> Send + Sync
- Alloy -> Plugins
- Better Error system and the error type from rust-error
- various other things about the place

Not ready to merge. Waiting on further changes and debugging.
This needs to be updated to match the code in the examples directory, it doesn't compile.