Adds layman-overlay-maker tool

This tool has been made to assist users in creating their own
layman overlay definitions.
maker.py: Improves component gathering logic

Also moves update_required() to the __call__ function,
as well as moving the overlay component list to constants.
maker.py: Adds overlay name checking

To prevent adding an overlay that won't be acknowledged by layman
checks have been made to ensure that the overlay name isn't in the
list of all available overlays.
maker.py: Adds overlay sorting on write

Also adds the ability to gather all overlays from .xml file and
save them upon writing a new overlay. Updates xml version to 1.1.
maker.py: Adds overlay type checking
maker.py: Adds overlay package adding to xml
maker.py: Adds explicit file path declaration for write()

write() will now also return a boolean to indicate a successful
write to.
maker.py: Implements reload_config() function
maker.py: Adds autofill support for select mirrors

github.com, and git.overlays.gentoo.org mirrors will have
their extra source URLs, homepage, and feeds filled out
for them automatically.
Adds proper feed support for overlay dicts
overlay.py: Removes old branch tag components

In favor of setting the branch variable in each source tag, the old
branch tag components have been removed.

subpath-2.xml: Alters test to reflect new branch setting method.
Adds multiple description field support

X-Gentoo-Bug: 465730
X-Gentoo-Bug-URL: https://bugs.gentoo.org/465730
maker.py: Adds stub function to grab descriptions

This function has been added in hopes of later adding multiple
description field support to the interactive overlay creation
session.
maker.py: Notifies user of location of successful write
maker.py: Adds "https://" source splitting support
maker.py: Adds Exception raising for errors
maker.py: Modifies auto-filled source URL unpacking
maker.py: Organizes auto-complete function
maker.py: Adds additional info support bitbucket.org mirrors
utils.py: Adds get_input() and get_ans() functions