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'm not sure this comment adds much and is likely to become outdated overtime. It could be added to the commit message if it's important.