build+src: mark destructor virtual in classes with virtual functions

And to prevent similar mistakes in the future, add -Wnon-virtual-dtor
to the default build flags.

Change-Id: I28e2361341abab29fca134309288cd259736d67a
diff --git a/src/face.hpp b/src/face.hpp
index 1940928..a6cd4da 100644
--- a/src/face.hpp
+++ b/src/face.hpp
@@ -231,6 +231,7 @@
    */
   Face(shared_ptr<Transport> transport, boost::asio::io_service& ioService, KeyChain& keyChain);
 
+  virtual
   ~Face();
 
 public: // consumer