Centralizes common archive overlay code

This commit brings archive overlay code to one common place, in
an attempt to make maintaining and adding archive overlay types
to layman much easier.

config.py: Alters the clean_tar option to clean_archive.

tar.py: Removes doctest tests from tar.py as there is already an
existing external.py test.
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
Merge pull request #15 from twitch153/squashfs-support


Adds squashfs overlay support, centralizes archive overlay type code into one general place, and
adds a layman-mounter utility script to handle mounting all mountable overlay types.
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.