Split global services for faster CLI startup
The CLI, Daemon and Tooling API all share certain global services.
But when the CLI is just forwarding the build request to the daemon
(which is the default), we don't need most of these services. This
change splits the global services into a basic part (that the CLI
always needs) and an extended part (that it only needs in --no-daemon
mode). This greatly speeds up startup for the default case, because we
do less class loading, less instantiation and less service lookups.