Work on issue #94 - protecting mbs function integrity

With this change, we scan that all important functions are only defined once in our space. Users can currently overwrite our functions with functions in their modules, so addressing that will be next.

The mbs-func-verify function currently does a sanity check that no functions within the files in the $MBS_ROOT_DIR will re-define themselves (no duplicates). If it finds a duplicate, it will show the offending function so it can be checked. This will help protect us when developing mbs.

Currently mbs is set to verify all $MBS_ROOT_DIR files early on in the load, but we should keep an eye out for how to make it run earlier.
Or could this eventually be implemented in a separate script entirely?

testing:
-duped a function name
-watched mbs crash with the duplicate detection highlighted
-removed duplicate function name, mbs loaded fine

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