Initial stubbing out of a common SyncBase class

Add copyright
Optimize bin_command handling in __init__().
Use the new SyncBase class in websync module
Git Sync: fix missing %s in the success message.
portage/sync/modules/rsync: Use SyncBase class.
portage/sync/modules/git: Use SyncBase class.

Use self.bin_command for the binary call.
portage/sync/modules/cvs: Use SyncBase class.
portage/sync: Move the Modules, SyncManager initialization code

Move it to sync/__init__.py
This creates a central place to store a single instance of the SyncManager.
It also makes the module names available for use in repository/config.py for repos.conf checks.
repository/config.py: Use the sync.module_names for the sync-type check
Code the new validate_config system
repository/config: Changes for plugin-syc

Use the new validate_config system
portage/repository/config.py: Add auto_sync attribute

Make the auto_sync variable lowercase
cnf/repos.conf: Add new auto-sync variable
modules/*/__init__.py: rename module1 keys

Add aditional info to the func_parameters dictionary.
_emerge/main.py: remove redundant portage._sync_mode setting
sync/modules/*: Remove unused func_parameters in module_spec
portage/emaint/main.py: Add 'return-messages' boolean to options passed in
emaint/modules: New emaint module "sync"

This code is a migration from _emerge.actions.action_sync.
The code has been split up into logical blocks.
Some changes have been made to handle multiple repositories better.
It also adds more flexibility as to what is synced.
_emerge/actions: Migrate action_sync to the new emaint sync module
man:  Update man pages with new sync info

man/portage.5:  Add the new auto-sync variable.
man/emaint.1: Add the new sync module.
man/emerge.1: Update  the --sync action.
sync/modules/rsync: Refactor legacy code

Split up the _sync() into logical chunks.
Replace out my* variables.
Move constants out of code, to top of the file.
emerge-webrsync: Add websync repo type as valid