Complete Batch specializations
Unify Option, Either, and Try into a new Else type

The type A Else B represents a conditional binding; either a Free[A] or
a Trap[B]. Trap.type serves as a safe unit constructor, making Else a
filterable monoid. Combinators can trap exceptions with custom fuses–a
fuse simply transforms a Throwable into a Trap. The default NonFatal
fuse just wraps non-fatal exceptions in a Trap[Throwable]. Append .fuse
to a Try value to get a fused combinator interface.

Package-level type aliases make common uses clear and concise:
type Maybe[+A] = A Else Nothing
type Try[+A] = A Else Throwable

Else specializes on its Free type parameter, and macros implement all
combibators, making useage extremely efficient.