Fix issue #94 - mbs should prevent itself (its functions) from being overwritten by user packages.

We take a hash of all system function defintions before and after user package
load. This gives us a first line of defense against packages re-defining our
mbs functions and compromising our integrity. Having integrity when running mbs
functions is extremely important for sanity.

There is still some challenging aspect of how to verify this verifying code
isn't compromised. I would say some time will tell to see how secure and
reliable this method is. I'm not convinced a determined user couldn't re-define
the verifying function and hack their way through this check.

It's safe to say this should prevent against *accidental* definition collisions
bewteeen mbs system functions and user package functions, not *malicious*
attempts specifically designed at overwriting mbs system functions from user
packages. We'll deal with that later.

modified:   core/mbs.sh
modified:   ext/mbs-func.sh