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.