Fix the plugin initialization routines

Our modification of callbacks.inited never actually got recorded, since
we were modifying a local copy of the struct. This meant that when we
started consulting callbacks.inited for all plugin callbacks, nothing
past the Init callback ever fired. This also means we've never been
firing our teardown callbacks.

Instead, move the inited flag into the new Plugin struct and modify our
plugin state to use []*Plugin.

Also ensure that the command plugin is always loaded regardless of
config, as it's used to provide support for other plugins.