Add 'covering' function option

Checks a function and all descendents cover all inputs (without worrying
about termination, just that inputs are covered in case clauses).

Primary intention of this is to guarantee that all error cases are
handled, especially in state transitions in effects.