Move error message from db to parser.
Added t4141: different dir output stealing with multiple outputs

We should be able to call find_existing_command() and tup_db_create_unique_link() without having to validate outputs in both places. Here we validate the outputs in the main oplist loop, so we know all outputs are ours before calling those other two functions.
Add 'error' command to Tupfiles

It is useful to be able to express build option configuration errors in
Tupfiles. For example, if a project requires a variant to be set, but
there is no reasonable default, the top-level Tupfile could include:

    ifndef PLATFORM
    error The variable PLATFORM must be defined. Did you forget to set up a variant?
    endif

I did not include analogous directives 'warning' and 'info' frequently
found in other build systems as they do not intrinsically make as much
sense; should they print every time, or only when the relevant Tupfile has
changed? 'error', however, is clear as it forces the parser to fail.

I played with a few different styles of output to both (i) look good, and
(ii) differentiate itself from a tup usage error (e.g. a syntax error),
but I'm not strongly attached to it.
Added t2167 - test for the 'error' directive.