fix(service,require_superuser): quote and expand array
docs(service,list_config): explain why no quote (require word-splitting)
refactor(service,run): wrap 'action switch' in function to allow tests

The 'source' command "Read and execute commands from the filename argument
in the current shell context". So we need to be able to include without
running the service.

When $TEST_MODE is false/unset we run, to include in tests set it to true:
	TEST_MODE=true
	source "$(dirname "$0")"/../mast
refactor(service,run): move require_superuser and require_directories inside

Also add function description