REVIEW: [NX-409] cleanup boot process

This PR splits the Nexus boot process into three clear steps (boot, edition, then plugins) rather than batching everything together and letting Karaf manage it as part of its boot process. This gives us more control over how features are installed, what fragment/host bundles (if any) are refreshed, and generally makes things more deterministic. It should also help narrow down start/stop problems to a particular step.

NOTE: because we now install non-base (ie. plugin) features in a separate step, we no longer use the 'bootFeatures' property to explicitly state what to install. Instead we use the `nexus-edition` property to decide what base edition to install, then in the non-base feature step we install any features found in the declared feature repositories that start with 'nexus' and end with 'plugin' (this is closer to the 'auto-discovery' approach in 2.x).

In the future we may decide to introduce a new property `nexus-features` to let people explicitly list what additional features to install, but I think that's better addressed in a separate task to overhaul the various templates/assemblies and make things more consistent.

Also incorporates #668 and #669