Add virtual destructors

It's the [right thing to
do](http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors).