Migrates run_command to utily.py
Adds layman-mounter utility script

api.py: Adds Mounter() initialization in the LaymanAPI.
constants.py: Adds MOUNT_TYPES to constants to keep track of
mountable overlay classes.
archive.py: Adds check to unmount overlays if they are being
synced.
Adds Squashfs overlay support

constants.py: Adds Squashfs overlay type to MOUNT_TYPES constants,
as well as different possible file extensions to FILE_EXTENSIONS
constants.
Adds Squashfs overlay external tests
module.py: Adds modular plugin system
Adds module directory for overlay types
bzr.py: Converts to plug-in module
cvs.py: Converts to plug-in module
darcs.py: Converts to plug-in module
g_common.py: Converts to plug-in module
g_sorcery.py: Converts to plug-in module
git.py: Converts to plug-in module
mercurial.py: Converts to plug-in module
rsync.py: Converts to plug-in module
svn.py: Converts to plug-in module
Converts archive code to plug-in module
overlay.py: Adds plug-in module controller

This commit implements the module controller system for the overlay
plug-in modules.
api.py: Makes supported_types() check for modules

Prior to executing require_supported() and notifying a user that the
overlay type isn't supported due to not finding the proper command
bin, a check has been made to see if the overlay module has been
brought in by the user. This will prevent unnecessary complaining from
layman.
Adds stub module

In the event that a user doesn't install layman with a specific
overlay type, the StubOverlay class will be used.
overlay.py: Adds self.ovl_type

To allow a stub function to tell the user the current overlay type
of the unsupported overlay, this variable will be passed in along
with the parent variable.