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.
graph: Show generated dirs differently from regular dirs.
Added t4142, t4143, t4144 - generated dir failure cases.

If we try to output to a different directory that is occupied by a normal/generated file, or becomes a normal/generated file, we should fail to parse.
Added t8081 - variant directories should not be converted to generated dirs.
Report an error if the monitor isn't supported.
Only remove from ghost_list if it's in the ghost_list
Added t8082 - gitignore in variant should still ignore top-level .tup directory
Added t4145 - make sure we can't use inputs from a directory we didn't write to.

A Tupfile can use inputs from a generated directory if it wrote to them, but not use inputs that another Tupfile wrote to that directory (unless it uses a group). If the Tupfile doesn't write to the directory at all then it may not exist at parse-time, so we need to get an error message.
Added t4146 - check for adding an invalid node to create_list.

If you made a directory inside a generated directory, tup would error out because the generated dir was in the create list.
Added t2168 - %d should be for the Tupfile directory, not an included file directory.
Disable t5053 in Windows (broken after updating cygwin).
Use bitfield for node flags.
Added t4147 - initial test for ^o flag to skip commands.

If the ^o flag is present, all outputs are moved to .tup/tmp before running instead of unlinking. After the command completes, we can check them to see if they are equal. If they are, we can skip future commands that depend on those files (unless some other input has changed).
Added t4148 - check symlinks correctly with ^o flag.
Don't show skipped command banners.

If there are a lot of skipped commands, it just adds needless noise to the terminal. We still have to keep the progress bar the same length, and just remove the mtime from the total time so our ETA is still accurate.
man page: Document 'o' flag.
Add -static-gcc command for mingw.

Apparently mingw32 with gcc-4.8.1 adds a dependency on libgcc_s_sjlj-1.dll unless we add -static-libgcc now.