utils.py: Adds str type checking for path_elements
cli.py: Adds byte array support

When checking the selection of which servers to sync/add there is
a check to see if 'ALL' is specified. In py2 with argparser this
works, but with py3 and argparser, this doesn't work because the
'ALL' string will come in as a bytearray. This commit fixes that
by checking the python version and assigning a varaible to be checked
instead of a simple string like 'ALL'. It will now come in as either
'ALL' or b'ALL', py version dependent. A small fix is also made to
docstring to make the print function py3 compatibile.
remotedb.py, tar.py: Implements ssl-fetch code

output.py: Adds level arg for error(), for consistency.
Migrate to using ssl-fetch (urllib3 based) for downloading files.
argsparser.py: Migrates from optparse to argparse

Also alphabetizes group arguments
dbbase.py: Fixes implicit tuple unpacking

A temporary variable is assigned to fix the lack of implicit tuple
unpacking in py3.
reposconf.py: Creates initial ConfigHandler class

A class which add support for repos.conf portage configurations
is being added.
reposconf.py: adds read() function

To read the ConfigParser file in /etc/repos.conf/layman.conf
the read(), and _read_file() functions have been added.
reposconf.py: adds write() function
reposconf.py: adds add() function
reposconf.py: adds delete() function
reposconf.py: adds update() function
makeconf.py: changes name to ConfigHandler, adds update() stub

For compatibility with RepoConfManager, the MakeConf class has been
renamed to ConfigHandler as well as adding an update() function as
a stub for when RepoConfManager calls it.
config.py: Adds auto_sync, conf_type, and require_repoconfig

Three new options have been added to give users repo config
configurability.
repoconfmanager.py: Creates initial RepoConfManager class

This class will provide a wrapper for all config types and will
also allow for custom config plugins as well.
repoconfmanager.py: adds conf_type checks

Checks are made to assure conf_types exists and is in the correct
format that RepoConfManager expects it to be.
repoconfmanager.py: adds add() function

By checking the conf_types and associating them with a dict has each
key as the conf_type and the value is a tuple of the corresponding
class and string of the module name.
repoconfmanager.py: adds delete() function
repoconfmanager.py: adds update() function
db.py: Incorporates RepoConfManager class
config.py: Adds proxies() function

Since both remotedb.py and tar.py both made use of the same code
that determined available proxies, the code has been moved to a
function in config.py and both files have been changed to make use
of this function.