Add Tupfile.ini support.

This commit seeks to obviate the explicit calling of `tup init`. When tup
is run, it will now search for both a `.tup` directory or `Tupfile.ini`
configuration files on the path down to the root directory. If no `.tup`
directory is found, tup will consider the directory closest to the root
that had a `Tupfile.ini` file as the root of the project and automatically
call `tup init` in that directory.

Any `Tupfile.ini` encountered along the way to the root is parsed as a
configuration file (such as the `.tup/options` or `/etc/tup/options`
files). The ini files are added to the configuration search in the order
they are found, that is a `Tupfile.ini` in the directory `tup` is run from
has the highest precedence. Note: This has the interesting property that
things in `Tupfile.ini` files are explicitly not project-global unless they
are in the root directory of the project.

The contents of `Tupfile.ini` files are not tracked in tup's database,
rather they are re-parsed on every invocation of tup. This is a design
choice, as the configuration elements in the ini files are designed to
affect the behavoir of tup as a program, not tup as a build system. In a
correct system, the options exposed by the ini files should not be able to
affect net result of a build.

This is tested on Linux and OS X, but not on Windows. So long as `getcwd` and
`chdir("..")` do reasonable things, however, it should work without issue.
Remove `tup upd` command in favor of simply `tup`

This commit deprecates the command `tup upd` in favor of the simpler,
shorter command `tup`. Now that `tup init` is not required, there was only
one "basic" tup command remaining: upd. This allows for much easier
migration to tup for refugees from other "build systems", using tup is now
as simple as just typing 'tup'.

The command `tup upd` is preserved for legacy / backwards-compatability
reasons, but will print a notice informing users that 'upd' is no longer
required.
Update `test/tup.sh` to accommodate init, upd

None of the tests failed (on OS X at least), but these changes eliminate
the large numbers of warnings that printed.

Test t7052 is updated to expect the monitor to run twice, as it detects
the call to `touch Tupfile.ini` from the test framework.
Add post_init.varaints hook for default variants

This commit adds support for default variants. It adds an option entry
called post_init.variants that takes a list of variants to be run. The
hook is called any time that `init_command()` is run, whether implicitly
or by an explicit tup init.

The init() process is re-arranged slightly so that tup is fully init'd
when the post_init hooks run. For similar reasons, find_tup_dir is
converted to a singleton.