completely skip server base classes

Similar to #1836 but for mixins (#1778 / #1761), we should be able to completely skip some of the server base classes.
ie:

if remote-logging is disabled, don't inherit from LoggingServer

if mmap is disabled, don't inherit from MMAP_Server

etc

This would reduce the memory footprint, and increase the security (decreasing the attack surface): it is impossible to attack code which isn't there.

Could be done for the server by using a dynamic type for "server base" (see example patch).
The client is not modular enough to support this sort of refactoring. (see #1796 for authentication handlers)

as of r19723 + r19724, we can run the server with some modules completely missing. Either not installing them (ie: build with --without-dbus - new switches added in r19725) or by nuking them afterwards (ie: rm -fr /usr/lib64/python2.7/site-packages/xpra/keyboard/).

This is true for the following xpra submodules: notifications, keyboard, clipboard, sound and dbus.
The server runs but prints a warning if the settings or command line try to enable functionality that is not available, ie:

Warning: missing notifications module

r19726: the server can run without any codecs at all, this also means without any webcam or window forwarding

r19727: the client avoids sending keyboard and pointer events if the server doesn't know how to handle them

r19728: the client still runs without any of the optional modules (but those are still loaded - not the same as #1861)