Split config plugin into command + subcommands

The `commands` hook still does the base parameter validation and
initialization, which is a little gauche, but not a major affront
for right now.