Git, ignore.
Improve and re-conceptualize configuration handling.

Configuration is now a jinja template over yaml.

All base classes should provide their related configuration block as a dictionary named self.opt.
You may super() the base class' __init__ in your derived classes then.

Any property in the dict could be overridden by a class constructor. All class constructors accept
a (possibly empty) dict.

A test.py unittest file is now provided. Make sure to cover your methods.