Better error handling in corner cases

The app was crashing very badly upon bogus input, ie unreachable URL's (or even URL's that aren't specs at all?).
We're catching root errors sooner, now. Good handling and proper user feedback is still missing, but at least it isn't crashing!
I began by fixing two rules that were crashing in those cases. I guess they were simply the first two rules that were applied to null documents. Now that we're stopping earlier in the process, there is no need to continue adding such tedious checks to every single rule. So I'm happy to leave commits to those two rules out of this PR...