Move command instance logic out of the WP_CLI class

The WP_CLI class isn't the best place for putting the code that creates CompositeCommand and Subcommand instances.

It belongs in the WP_CLI\Dispatcher namespace, but not in the RootCommand class, which should remain just a container.

Hence, a new class.