<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

I'm guessing that your intention is to get all the paths that are set for the mongodb24 software collection whilst excluding standard system paths that may be set when the `scl` command is run but that are not set by the collection itself; is that right?

I cannot think of a good approach, but maybe this would be a better approach:
```
# Exclude collection-specific elements, but include directories needed by the scl command itself.
local syspath="/bin:/usr/bin"
local sclpath=$(PATH="$syspath" scl enable nodejs010 'printenv PATH')
pe="${sclpath%:$syspath}"
```