Don't break -Werror=non-virtual-dtor

Classes with virtual methods but non-virtual destructors are dangerous,
because users often hold pointers-to-base-class of derived classes,
which cannot correctly destruct the derived class if deleted. As such,
there is the aforementioned warning that developers may like to promote
to an error. Add virtual (empty) destructors to some classes that were
tripping this, so that we build successfully if said flag is used, and
because they should probably be present.

Change-Id: I930ad5f5d122cf94c57e52bf28479cf3ca7950d4
Reviewed-by: John Cummings <jcummings2@users.sf.net>
Reviewed-by: John Ehresman <jpe@wingware.com>