Allow fail messages to be caught, introduce Any trait
Some code cleanup, sorting of import blocks
Removed std::unstable::UnsafeArc's use of Either

Added run-fail tests for the new FailWithCause impls