Added Spring ApplicationContexts to bootstrap process

These commits add ApplicationContexts to the bootstrap process so that initialization code run in a SmartLifecycle.start() method is run only after all commands contributed by found plugins have been registered with the parser.