make ActionBuilder covariant

ActionBuilder is more flexible if it is declared to be covariant rather than invariant in its higher kinded type R.
R only appears in covariant positions ActionBuilder:
…(block: R[A] => Result):… is in a contravariant position and R[A] is the contravariant position of the function type, which overall makes R covariant.
Being covariant, ActionBuilder[WrappedRequest] (or other subtypes of WrappedRequest) can be safely upcast to ActionBuilder[Request].
Add ActionFunction, a generic version of ActionBuilder

Includes some other useful refinements on ActionFunction (ActionRefiner,
ActionTransformer, and ActionFilter), updates to documentation and examples for
ActionFunction, and appropriate compose functions (as suggested by @huntc).
Merge pull request #1986 from dylex/actions

Generalize ActionBuilder by parameterizing over Request type