Propagate errors from pre conditions to the caller

Errors raised in execute, use case initialize, etc are propagated to
the caller, build and preconditions break that convention and capture
the error.

The errors were caught using 'rescue Exception', which is a huge no-no
in Ruby, since it catches errors such as SyntaxError and SignalError.

This situation hides bugs because failing pre conditions are usually not
handled, since many use cases don't explicitly use pre conditions, but
may have bugs in the command's build method.
Up version