(feat) Added real error handling through a new Error variant

Error handling is a thing now, and Unwind now distinctly means
"I have handled this request correctly", whereas Error now means
"There is a problem. Abort mission.".

Middleware which want an exit-style function to fire no matter what
should ensure that they implement both exit and on_error.

Fixes #106 
Because StackChain is the most common impl and it listens to the status returned from enter instead of the one returned from exit. on_error does not return a status.