Bugfix: admin_state code could crash if cfg is an array

The error condition was being logged, but after logging that the
input was not in hash form, the code then carried on operating on
it as if it were known to be a hash.  Refactored the offending
function by moving the bulk of the inner body out to a new
subroutine, to make structuring the code for this error a little
easier.
admin_state: log successful completion (including noop case)

Without this, the log entries on a sucessful load kind of leave
the user hanging, wondering if the processing of it was ever
completed