option.py: made named-section options support more flexible

Various sectioning syntaxes are supported; see command.py for example(s).
util.py: remove "ago" suffix from relative time string, handle zero better
added host config for Stampede @ TACC
config.py: better handling for default initialization of host configs
core.py: search for CUDA toolkit in some pre-defined locations
core.py: handle "extra" args in `build_configure_flags`

This translates '-I...' to 'CPPFLAGS=-I...' and '-L...' to
'LDFLAGS=-L...' when calling `configure`.
core.py: added support for sub-commands in Command
command.py: better support for subcommands w.r.t. `help`

We can now do e.g. 'chimi help job run' (which is *about* to exist...)
command.py: add command declarations for the job-management API
command.py: re-enabled `fetch_sources` ("fetch")
add git integration, incomplete branch tracking for builds
command.py: section options to the "build" command
command.py/bootstrap(): set save_flag on the package set before saving
core.py: enable continuation of Charm++ builds
core.py: added package-definition method `get_build_directory`

This is intended to provide a more consistent method for getting
build-directory paths from the package definitions.
core.py: PackageSet: improvements to save() method

Added a lock while saving. to prevent possibility of multiple saves
at once; temporarily remove packages' `_repository` variable (don't
need that in the YAML file).
core.py, command.py: some misc. whitespace/formatting cleanups
command.py: don't include SAGA module directly
core.py: remove no-longer-needed `directory` argument to Build ctor
lmod: added `available` property to module

This lets us avoid checking for lmod-related env. variables outside of
the module itself.