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.
Merge pull request #20 from twitch153/modular-types

Adds modular overlay types support as well as adding a modular plug-in system that can be used for other things such as modular configuration types.