RFC: Error Reform and Failure Box

This RFC proposes four things:

* a reform to the `Error` trait to support better messages.
* a new `Failure<T>` wrapper for errors to support optional tracebacks.
* a `ConstructFailure` trait to support interoperability between errors and failures.
* New `try!` and `fail!` macros that use `ConstructFailure` instead of `FromError`.

[Rendered View](https://github.com/mitsuhiko/rfcs/blob/failure-box/text/0000-failure-box.md)
Well, this is for `IoError` sized structs.  The odd thing is that I even see performance improvements on the OK branch for boxed up plain enums which seems suspicious.