Overhauled `lib/libsite'

Fixes:

    Source `~/.siterc' right after `etc/site.conf' to allow for
    user-defined settings to kick in at the earliest possible point.

    Fixed a long term bad usage of `"?$[*@]"?'; to allow for multiple
    tokens that each may or may not contain spaces, use "$@",
    otherwise to render all arguments as a single token with spaces,
    use "$*".

    Fixed PYTHONPATH for new site python module.

    Renamed `SITE_*' to `USER_*' for user-specific configuration.  The
    example siterc file amended to match.

    The cache directory used to create a cache/cache directory; this
    has been fixed.

    The `core:raise()' function bug (cpf failure) fixed.

    Bug fix on negation of booleans.

Cleanup:

    The `~/.site/' area simplified, less but more meaningful symbolic
    links that pertain to the selected PROFILE.

    This change mandated amendments to:
        * bin/site
        * module/ldap
        * module/remote
        * module/util
        * module/net

    The 3-second sleep where an exception was raised has been removed,
    and instead - if the bash process is detected for trace.  If trace
    is active, then it quits where the sleep used to be which reduces
    the noise in the same way as the sleep did, and doesn't require
    the user to wait unnecessarily or press CTRL+Break.

New:

    Logging function added to core: `core:log'; added the default user
    log level for the new log function to the example configuration
    file supplied.  The makefile install/uninstall/purge targets have
    been updated for this new feature.

    Support for user environment checks in `:core:require'.

    New mongo module and a `lib/libjs' area for possible javascript
    modules (`lib/libjs/mongo' for mongo specifically).

    Added a new tutorial module (enabled).

    Better bash trace output via PS4.

    Added a new exception code for bad return codes.
Installation/Uninstallation work in the Makefiles

Also added jsontool, a command-line utility to json-enable bash
scripting.  This might turn out to be the new means of communication
betweek all site modules, instead of the ugly "\x07"-delimited textual
dumps.
Cleaned `module/ldap'

Reused common code and shortened function.

Updated usage strings where out-of-date.

Use the new `core:requires ENV' in order to allow the module to
auto-disable when the user has not set required environment variables.
Updated `module/net'

Allow for external fqdns by ending the hnh with a period; that means
that the `tldid' argument to `:net:portping' is now optional.  Even if
a period is not supplied, but there is no `tldid' defined, external is
assumed.

Speed things up by switching from nc to socat.
Updated `module/cpf': new EXCEPTION option added
Fixed `module/cpf': fixed exception printout bug
Updated `module/dns': gracefully handle a module import

Instead of dying when failing to import the netgroup module, just fail
gracefully by logging an error and moving on.
Updated `module/dns': merged subdomain config

The subdomain config which was in files of the form
`${SITE_ETC}/subdom-${tldid}.conf' are now simply inside the main user
configuration file.

The example `site.conf' file illustrates how this is done.
New `module/hgd': support for mongo resolutions
New `libexec/softlayer': interface to softlayer
Updated `share/examples/site.conf.eg'

Improved inline comments and added the new new wildcard tldid entry.
Updated `module/net': hgd reqirement: one entry per line
Fixed `module/hgd'

Updated `module/hgd': hgd reqirement: one entry per line.
Specifically, the mongo results have been reverted to one per line.

Also fixed error checking on the return of the sets script.
Overhauled unit-testing framework

Fix:

    The static unit-testing framework has been neglected for a while,
    and in a broken state.  It has been fixed and once again
    functional.

New:

    New are for unit-testing files, the csv and static scripts will
    now reside there, and not in share/.

Updates:

    In the dynamic unit testing csv:

        Use external fqdn for testing the module `net'.

    Added missing hgd unit tests; simple tests were done via the
    dynamic unit test framework, and more complex (multi-step tests)
    were done via the static unit test framework.
Completed unit tests for hgd module
New `module/gpg': Split out from `util:gpg*'

Also enabled it.
... lib/libsh/libsite/unit/dynamic.csv
... lib/libsh/libsite/unit/static-util.sh
... lib/libsh/libsite/unit/static-gpg.sh
New `module/mongo': site interface to mongodb