can now provide inline configs (useful for automated testing)
minor tweaks

needed to add a `use` for the config class (otherwise doesn't work if used separately from App::VC)
removed a comment that was no longer relevant
refactoring to make running a single method for running a command

this not only removes some minor duplication between Command and CustomCommand,
but it also sets us up better handling of the case when a given command fails
refactor tests so I can use fake commands in other tests
added a new test file to verify command output

testing command with and without --pretend
testing all directive types except fatal (because that prematurely exits the test file)
this will allow me to refactor some methods from the command to the app
refactored to allow config object to properly handle fatal()s and warning()s

this meant giving the command a way to "register" itself with the config
-	and also making the config handle any errors or warnings that come up before the command is created
-	I originally wanted to do this by hoisting fatal et al into the app object
-	but this is impractical since many switches that impact fatal et al (e.g. --color) are not available at the app level
-	so I went with this solution instead, even though it feels a bit hacky
also a couple other bits while I was in here:
-	don't need to pass config methods on to our app; we can pass them directly to our config
-	moved the info_expand from inside custom_message to outside (better separation of concerns)