Merge pull request #6 from da-x/master

buildsome.cabal: can build with template-haskell == 2.8 too
Allow wildcards in target patterns for one-to-unknown-many matching

The '*' is used as a single wildcard, e.g.

    $./AUTO_%.INSTANCE.*.h: $./%.t.h

In the case any dependency that matches the wildcard, e.g.
AUTO_foo.INSTANCE.somestring.h, will have an automatic rule for it.

Essentially, this can be used for templating.

Only one '*' can be provided, and it can be provided only in the
suffix.
Make sure accepted sockets are properly closed
Oops: When replay not done due to stdout/stderr being empty, we also forgot to verify the execution log against specified inputs/outputs
Print.targetTiming
Refactor replay printing to Buildsome.Print: More information upon exception. Less line noise
Less noisy stdouts printing
Do not print commands by default. Do not replay stdouts by default. Less noisy output
Replays don't waste a whole line for timings
Oops: TargetCommandFailed did not space out its print properly
Job connections failing are not necessarily bugs
TODO
No global color scheme. Pass Color.Scheme everywhere manually.
Check terminal capabilities to use colors or not
Allow override of color enable/disable from command line
ColorText.render: Avoid superfluous color coding
Oops: Printer did not respect color scheme
Only print about 'updating .gitignore' in --verbose-general
Builds is not entirely successful if there were warnings

Print a last line with a yellow warning if there was a STDERR in
at least one executed command.

For example:

    $ buildsome
    Parsed makefile: "Buildsome.mk" (took 0.227192ssec)
    T000 Building: "default"
    T010 REPLAY for target ["out/main.o"] (originally) took 0.037523s seconds, STDERR follows
    main.c:89:6: warning: function declaration isn't a prototype [-Wstrict-prototypes]
     void warning_generator() {};
      ^
    T000 Build Successful (but with STDERR): 0.271871s seconds total.