add new helpers to handle the backend interfaces.
The idea is that when a backend interface needs a new virtual function the old
interface is renamed but the Q_DECLARE_INTERFACE is kept (with the changed
interface name). That way implementations from backends compiled against older
libphonon can still be casted to that renamed interface. A new interface is
added with the name the old interface had before and a new Q_DECLARE_INTERFACE
statement is added. That way backends automatically get source incompatible
(kind of) which helps to find the places where new implementations are needed.
To make it easier on the frontend side to access the backend I added template
magic structs/functions that will return either 0 or the correctly casted
pointer.
Now I'm praying that all compilers we need to support can handle this code.
svn path=/trunk/KDE/kdelibs/; revision=770909