Removed all uses of templates implements[1-4], extends[1-4] and extend_interfaces[1-4], which are now unnecessary
In the Gaudi codebase, a template which plays a central role is implements<>, which provides a reference counting base class for all concrete Gaudi classes inheriting from abstract interfaces.
In the old days, there used to be multiple versions of this template: implements1<>, implements2<>, implements3<> and implements4<>; corresponding to 1, 2, 3, and 4 template parameters respectively. This code duplication was largely eliminated in recent Gaudi releases, as C++11 variadic templates were introduced, allowing for a fully general implements<> implementation.
Nowadays, implements[1-4]<> only remain as a thin wrapper around implements<> for compatibility with legacy code. I propose to eliminate all of such legacy code from the Gaudi source tree.
2016-03-09: Extended this work to extends[1-4]<> and extend_interfaces[1-4]<>