add virtual destructor to base class

This adds a virtual destructor to the abstract Model class. This is necessary for implementing a C/Python API based on call-backs (see: https://github.com/beaylott/DNest3 ).

I guess is a matter of taste whether the default destructors should be specified in the interfaces or the object code... I have put them in the interfaces.

I have also updated all the examples with explicit default destructors so they are compatible with the change.