Added the notion of a StreamContext for errors.

In order to accurately report the origin of an error, every level of
translation carries this context, so that errors can be tied to files
and even lines when appropriate.
Added StreamContexts to the parser.

This adds a general SALVEException, which should serve as the basis for
all exceptions that carry a context. Conversion throughout the block
modules to generate the new BlockException type.
Added StreamContext to Action and its subclasses.

Includes the modification of ActionExceptions to carry a context.
Changed Blocks' to_action to handle context passing
Also a minor bugfix on backup action initialization.
Modified commandline runs to print nicer messages.

Instead of throwing the exception, catches it, inspects it, and
prints a pretty error message. Requires some ugly manual handling of
all of the different exception types in case there is a hybrid exception
that inherits from multiple exception types. Looking for a more elegant
solution.

Includes testing that SALVEExceptions are caught, and other exceptions
pass through.
Merge branch 'feature/exceptions/stream-context' into dev