Improves flexibility of Operation#fail

The method now supports the same interface as Ruby's own raise. The only difference is that the method raises an exception of the type that is specified by Operation.exception if no exception is supplied as an argument.

Furthermore, Operation#fail now forces the operation's result to be nil.
Merges Feature: Custom Exceptions
Updates version: v0.7.0 -> v0.8.0
Changed default exception management

For some reason, in some unknown settings, Operation.exception could not reliably determine its superclass via a call to super. In such a scenario the method would fall back to ComposableOperations::OperationError as return value even if the superclass did indeed specify a different default exception. Hence, Operation.raises has been changed to define a singleton method instead of just assigning the default exception to an instance variable.
Merges Bug Fix: Default Exception Inheritance
Updates version: v0.8.0 -> v0.8.1