REL-1368: Add markers for laser observations w/o clearance windows.

Additional error markers in QPT for laser observations for which LTTS does not have clearance windows.

Note: This is a cleaned up retry of an earlier pull request.
I think a type pattern is always preferable to `isInstanceOf` / `asInstanceOf` because the guard and the cast cannot become separated in the code via refactoring and so on; the RHS of the `=>` is the only place where the cast is known to be sound, and it's done for you.

Note that this is the only ethical use of type patterns; unless you're dealing with a terrible API that requires downcasting, you should only match on constructors.

And also note that (like `isInstanceOf`) this is sound only for non-parameterized types. At runtime it is impossible to distinguish `List[Int]` from `List[String]`, so a type pattern like this will match any `List` at all.