Adding %g and %() syntax

Adding a new flag that expands to the glob expansion match.
The main use case for this is if the command to run changes the basename
of the file:

: foreach *_master.c |> foo %f |> %g_minor.out

This also adds a new syntax for flags: %(<flagname>), ex: %(f).
This is useful to allow for modifiers on a particular flag. For
instance, with the %g flag it can be usefule to add an index.

: foreach *_*.c |> foo %f |> %(g0)_%(g1)_new.out
support for [] and ?
some globs work
Added %g to the manual.
Removed debugging printf
Added three tests that test %g
Documented the <group> feature.
Added note about blank commands.
Cleaned up comments and code format

Should look the same as the rest of the code.
Merge branch 'master' of https://github.com/gittup/tup
catching up to origin
Merge branch 'master' of git://github.com/gittup/tup
Merge branch 'master' of github.com:bradjc/tup