Add more validation code

This commit is very much a work in progress. FeedValidator has become far too large and needs to be split up, but the validation code itself should be sound. It may also seem like this commit introduces a large performance regression, but this is actually caused by the conversion of arrival and departure times back to strings, not by the parsing process itself.