Refactor Launch to validate in .new, not .run.

This is a bit of refactoring that I worked out as I was digging through the code base looking at other things. No real functional changes at this time, other than to fail faster if there's issue with configuration loaded

Better to set up and validate when the class is loaded, rather than defer it to when we want to get work done.
@mattbostock Hopefully I've handled this sufficiently with 915c06. I'm not too happy that the `.new.` tests are actually triggering `.run` thanks to the `CommandRun` class in the spec, but the commit should address your comment.