Make ErrorReport implement HasSource.
Add fabrique::SourceCodeException.

This is a base exception class for reporting errors in the source code that we are parsing/compiling (syntax errors, type errors, other semantic problems...).
Add SourceRange::Over(HasSource&, HasSource&).

Sometimes we have references rather than pointers, and taking pointers to references generated from a pointer-hiding abstraction (e.g. shared_ptr) is a rather silly thing to do.
Unify binary operation parsing.

There's no need for the Parser to have separate Prefix(), ScalarAdd() etc. methods. This will become especially silly in a moment when I commit additional operators...
Add support for (binary) logical operators.
Remove duplicate token declarations.

We already have ADD, PREFIX, etc. in operator declarations; there's no need for separate %token declarations.
Use shared_ptr rather than a naked pointer.
Trivial: style fix.
Add SourceRange::Over(SourceRange&,SourceRange&).
"nowhere" can be static const.

And should be, since we might return a reference to it!
Add support for expression negation.
Add more (missing) tests for build actions.
Trivial: fix conditional output.