Added t3057 - don't add dependencies on group directories.

If we have foo/<group> as an input, we don't actually need to parse foo/ at that time, nor do we need to re-parse the current directory if foo/ changes. The group is created on demand, and the logic to handle the group is done when we check dependencies.
Added t3058 - partial updates shouldn't update the whole group.

In t6055, logic was added to make sure that all output nodes of a command are kept as long as at least one is needed. However, if one of the outputs is a group, we don't want to include all commands pointing to that group. This test checks for the correct behavior when a partial update is used in a group.
Disable t4078 in Windows.

This test sporadically fails because of something to do with exit codes becoming 0 when they shouldn't be (ie: 'false' returns 0 occasionally). It appears to be an issue with Cygwin: http://cygwin.1069669.n5.nabble.com/Intermittent-failures-retrieving-process-exit-codes-td94814.html
Added t8076, t8077 - clean up empty Tupfiles correctly with variants.

Normally when a directory is removed in the src tree, it ends up being a ghost until the generated files and such are cleaned up, so the srcid is still valid for the corresponding variant directory. However, if there is just an empty Tupfile (or one with comments), then when the directory is removed we end up just deleting the node immediately. This means the srcid is now invalid, so later when we try to process the variant dir, we can't find its srcid. One option is to make the ghost check also check for srcid, but since that's not indexed we would have to rev the db. This implementation just sets the srcid to a special value (-2), so when we hit these in the parser we use that as a marker to clean up the variant directory as well.