Updated `libsite.sh': update, fix, cleanup

Update:

    Have an actual set of return codes for module imports, and act
    accordingly - this was always the plan, but it was never really
    implemented.  It still needs to be improved as the codes are not
    yet stored in variables.

Fix/Cleanup:

    Test if a module cleanly imports before committing to importing
    it, so that bad modules don't cause site to die with a backtrace.
    Instead display an `ERR' next to the module name.
Updated `share/examples/siterc.eg': Mac OS X, env

More useful aliases ready for use for Mac OS X users.

Environmentally set variables now override those set in `~/.siterc'.
Updated `share/module/template': simplify

The new template is better suited to generating new modules or
updating existing ones; copy/past and amend (rather than try to
teach).  It now acts as a simple copy/paste buffer.
Updated `Makefile': development targets, update

Minor updates to symbolic links from `~/.site/' to `/var/tmp/site/*'.
Updated `bin/ssh': persist on down hosts

If a host is not responding on port 22, then keep trying it until it
does - and only then make an ssh connection attempt.

This is now used in `::remote:tmux()' instead of the ssh binary
itself.
Updated `module/hgd': touch `hgd.conf' if need be
Updated `module/gpg': new, fix, cleanup, unit

New:

    To encapsulat the gpg executable, two new functions have been
    introduced:

        :gpg:encrypt()
        :gpg:decrypt()

    And also added these new functions:

        :gpg:kid (key id)
        :gpg:list

Update:

    Hide `:gpg:kid()' into a private function as it no longer needs to
    be exposed to other modules.

Fix:

    Clean and fix of some minor issues.

    Unit-testing updated accordingly.
Updated `module/ldap': use diff (command/alias)
Updated `module/unit': new, cleanup, fix

New:

    Support for per-module setUp/tearDown added

Fix:

    The `stdin' code never really worked since it was implemented, it
    has now been fixed.

Cleanup:

    Exit code from the unit test on each module now reports how many
    tests have failed, rather than just an error code.  Error codes
    themselves are thus no longer printed out, but the number of
    errors is instead printed at the end of the module unit test.
Updated `module/util': doc, update

Doc:

    Fixed the usage docstring for `util:secret()'

Update:

    `g_GPG_KEY_PATH' is no more, and site will look for a GPG key
    based on the active profile instead.  No more guess work.
New `module/vault': split out from `module/util'

All functions relating to managing the secret vault have been moved
into a new dedicated module managing it called `vault'.

This new module is split out from util.  All direct calls to gpg have
also been replaced with calls to the new `:gpg:decrypt()' and
`:gpg:encrypt()' functions.

`g_GPG_KEY_PATH' is no more, and site will look for a GPG key based
on the active profile instead.  No more guess work.

Other modules that referenced `module/util' have been amended to
reference the new vault module instead:

    module/ldap

Finally, `libsite.sh' has been updated to enable the new `vault'
module.

Updated `unit/dynamic.csv' accordingly.
Unit test `util' added: closes nima/site#4
Unit test `vault' added: closes nima/site#17
Updated `.travis.yml': travis-ci matrix, rng, apt

Split out the various modules into independent travis-ci matrix items;
this way it is easy to see the health of each module without having to
read the actual output of the unit test.

Install from `share/unit/apt.conf' to prevent user-interactivity.

Install from `share/unit/rng-tools' to speed up RNG; this doesn't
currently work in the Travis CI environment for some reason.

Added coreutils to the packages list for `dd'.
New `share/unit/travis': Travis CI multiplexer

This script uses env variables set via `.travis.yml' to direct various
unit test execution paths, and has made unit-testing more efficient.
Updated `.travis.yml': util and vault tests added
New `module/mongo': mongodb site module
New `module/softlayer'

New site module that interfaces with `extern/softlayer'.
Updated `libexec/softlayer': flag for cache added

Added a programatic flag (variable) to enable/disable caching, and
set that to false as softlayer API calls are not too costly.