Adds layman-overlay-maker tool

This tool has been made to assist users in creating their own
layman overlay definitions.
Moves maker.py and renames class to Interactive()
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.