Restructure our boot procedure for more flexible boot-step handling
Allow for runtime disabling of plugins
Ensure we pass the nodename on windows
Allow offline plugin re-configuration
track boot status throughout a node's lifetime
handle cleanup steps properly
Rework boot step handling
merge default into bug24926
Various boot procedure improvements

We ensure that all dependent applications are stopped, but also that
dependencies shared by multiple applications (e.g., amqp_client) are
not.
Refactor (de-duplicate) module attribute search
Re-work boot step handling

We need to support interleaving plugin boot steps with rabbit’s own
(internal) ones during the boot/start sequence, and also running them
independently during runtime activation.

This commit also drops the use of an ets table to track which cleanup
steps we’ve run, and simplifies the boot step execution procedures.
Remove lots of io:format debugging and tidy up rpc error messages
De-duplicate dependency/graph building functions
refactor (renaming)
Tidy/Refactor boot step handling

Simplify the boot step loading/application code and switch from using
a discrete rabbit_cleanup_step module attribute; We now search the
regular boot steps directly for ‘cleanup’ entries.
Merge default into bug24926

Merge conflicts in rabbit.erl, pertaining to app startup procedure.
Handle hard vs. soft boot step dependencies
Refactor (simplify application stop handling)

The offline plugin handling does a fine job of detecting which apps
need to be stopped/unloaded when disabling a plugin at runtime. We
previously had problems accidentally stopping things like stdlib and
mnesia by accident, but only because we went searching for the app
dependencies ourselves! Instead, we stop only those applications
(i.e., plugins) that rabbit_plugins_main has requested. In doing so,
we remove a considerable amount of (new) digraph hacking from
app_utils and reduce the complexity of rabbit_boot somewhat.
Merge default into bug24926
Refactor - remove unused functions/comments/todos