we now have a first prototype for a device template generator

the device, simulator, and device_template class now use shared_ptr
of the respective viennamini objects, e.g., device, config, etc ..
this enables a good middle ground between safety, and external setting
of the objects as used for the simulator: by the deefault the simulator
instantiates all objects, however, if required - in the case of using
the device template generator - the config and device objects are
generated externaly (in the generator) and then forwarded to the
simulator object
decoupled problem source code into separate compilation units