build the runner itself in a static lib we can use for testing and then
link that into a module lib together with the factory entry point to
compose the final lib for installation
means servicesrunner.cpp is now only built once, whereas before it was
built twice through 100% duplicative targets