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)
The ideal case is loc bring a uint that holds the instruction pointer and getting debug info from dwarf. There is nothing that prevents this other than that it's more work :)