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.