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.
I know that this was here already and `config` is defined as an attribute reader but I think this would be more readable if it read `@config` (I had to look for where this was defined). This would be also be consistent with line 48.