<mongodb cart> adapt to use SCL-provided mongodb

Bug 1073126
https://bugzilla.redhat.com/show_bug.cgi?id=1073126

Adds `lib/mongodb_context`, which wraps MongoDB executables with
appropriate SCL context

Adds `update_configuration` function: sets up `PATH`, `MANPATH`, and
`LD_LIBRARY_PATH` for shell env

Update `mongo` shell function in `rhcsh`: don't clear `LD_LIBRARY_PATH`
before calling `mongo`, trust the `PATH` variable to find the right
`mongo`, and resolve `mongo` path into var `mongo_bin`

----

mongodb cart: address bugs with scaled carts

Bug 1073126
https://bugzilla.redhat.com/show_bug.cgi?id=1073126#c8

Add `publish-ld-library-path-info` hook, lock `mongodb/lib` directory

Also addresses issue with `rhcsh` where correct `mongo` bin isn't
necessarily on the `PATH`

----

mongodb cart: Support non-SCL systems

Bug 1104072
https://bugzilla.redhat.com/show_bug.cgi?id=1104072

This commit updates the cart spec file to conditionally call the
`mkjournal` script with or without SCL mongo, updates `mongodb_context`
to support non-scl mongo and tweaks `rhcsh` in a similar manner.

Additional fixes include:

* modify the `mongo` function in `rhcsh` to properly quote
  user-specified parameters for passing to `scl enable mongodb24`

* conditionally publish path elements so the correct `mongo*` binaries
  are preferred in scaled and non-scaled environments

* defensively quote user-specified parameters in function `mongo` in
  `rhcsh` so that things like exotic passwords that contain spaces are
  passed to the `mongo` binary without being erroneously split into
  multiple arguments

----

 mongodb cart: clean up `mongodb_context`

Integrating Miciah's suggestions to simplify `update_configuration` -
smarter path element generation and more correct handling for empty
`ld_path` variables
The standard release orchestration process will need to be run so that the new path elements are published, but there doesn't need to be an upgrade script. Just cart import, cart migrate, upgrade and postrelease.

I just realised the version I tested with differs from what's current in github, as I removed the `Compatible-Versions:` entries from manifest.yml trying to figure out the upgrade process, so I will re-test with that change omitted before I feel ok merging this