Migrates layman-overlay-maker.py code to maker.py

This migration also includes changing the coding style from
procedural to object oriented.
layman-overlay-maker.py: Adds comment code to look pretty
maker.py: Improves component gathering logic

Also moves update_required() to the __call__ function.