Amended `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/gpg': new, fix, cleanup

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.
Updated `libsite.sh': 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 `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.
Simplified `share/module/template': copy/paste

The new template is better suited to generating new modules or
updating existing ones; copy/past and amend (rather than try to
teach).
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
    module/remote

Finally, `libsite.sh' has been updated to enable the new `vault'
module.
New `module/mongo': mongodb site module
Updated `module/ldap': use diff (command/alias)
Updated `unit/static-gpg.sh': fix, scaffolding

Renamed `PROFILE' to `SITE_PROFILE' which was overlooked in the last
overhaul commit of `libsite.sh'.

Added setUp/tearDown scaffolding functions for the gpg module.
Updated `module/unit': per-module setUp/tearDown
Unit tests for `module/util': nima/site#4
Updated `unit/dynamic.csv': cleanup
Updated `share/examples/siterc.eg': Mac OS X

More useful aliases ready for use for Mac OS X users.
Updated `Makefile': development helper targets
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'.
Fixed `module/hgd': touch `hgd.conf' if need be