Alternative & MonadPlus

Potentially resolves #6.

How does this look?
Sure. I think there might also be use for a whole set of type classes along these lines: `Lazy`, `Lazy1`, etc. but for now, just the two is probably enough :)