Allow custom initialization of base classes
This merge request adds custom constructors to classes with a virtual destructor to enable their initialization with custom values.
Inheriting classes are altered to make use of these new constructors to avoid having to reassign their members.
Closes #78 (closed)