fix C++11 build errors

Add explicit (but never implemented) dtors to promoter classes whose
base classes have private dtors. This is required to avoid errors like:

  decorators.h: error: deleted function 'virtual Promoter::~Promoter()'
  class Promoter : public Base
  base.h: error: overriding non-deleted function 'virtual Base::~Base()'
  decorators.h: note: 'virtual Promoter::~Promoter()' is implicitly
    deleted because the default definition would be ill-formed:
  class Promoter : public Base
  base.h: error: 'virtual Base::~Base()' is private

...which occur when compiling in C++11 mode (i.e. -std=c++11), at least
with recent versions of GCC.