Refactor: Simplify boot/cleanup step handling and unify modules

Isolate boot steps to a set of applications and avoid using ets to
track which have run. This also simplifies cleanup step execution.

The force_reload code isn't needed, since the real issue preventing
updated versions of modules from being found lay in the proper
expansion of (the correct set of) .ez archives, which was fixed in
revision 1918e77.

Unify all the boot handling code under rabbit.erl once again and now
completely remove rabbit_boot, since it's no longer needed. Remove
unused exports and tidy.