Add problem description to Problem class and its children
Add run-all option to pe driver by creating a list of all problems in the Factory
Make the pe drive catch more potential exceptions types to make things obvious if they fail
Add more Doxygen comments so it now builds docs cleanly
Change generate_Factory to Python3 and sort problem list
Add check via Factory for Problem1
Add Problem2 with optimized solution
Run clang-format over everything