overhaul `firstValue` and `firstResolved` functions
overhaul `firstValue` and `firstResolved` functions

- they now only exist on `Sequence`, for simplicity.
- `firstValue` now returns an `Optional` in case the sequence is empty.
- `firstResolved`'s `Deferred` now has a specific `Failure` type.

glessard/deferred,glessard/async-deferred,glessard/deferred,glessard/swiftian-dispatch