[#59505526] launcher preflight checks -- DO NOT MERGE

Posting this up for the record, please do take a look and comment. 

It seems like a lot of code, but most of it is tests and schema definitions. 

The main decision we still need to make on this imho is whether to raise exceptions or to generate some kind of failure report.

Exceptions are clean, but have the distinct downside of only bubbling up the first error found - which would be kind of annoying.