Plug memory leak - don't slice in destructor!

Destructors must be virtual if you have a class hierarchy, or you
risk deleting only the superclass portion of the object!