simulator class: config/device/matlib/storage can now be provided externally

introduced void set_{storage,device,config,material_library}(reference thingi)
-> simulator class now uses pointers internally, this allows updating
(external setting) of these objects. in case the objects are externally provided,
the simualtor's destructor won't destroy the objects