Add Failable typeclass

NB: @derekjw's code

For configurable "eitherness" and "asyncness" of result types.

See the examples in FailableTest.