Draft: Golum100 merge
Major changes in reducing number of lines and adding class inheritance; some changes in the coding style so it follows PEP8.
I would recommend testing before merge, since this is a pretty big change.
@justin.janquart is the image2.py
file in the examples folder working? Can I test that the run correctly reproduces the results there? It may be worthwhile for us to have some 'expected result' for that image2 run that we can compare with whenever we push something big.