WIP: Improve validation of complex configuration fields
Description
This MR adds some type checking validation to the more complex configuration fields (namely the places where we pass objects that are constructed with a custom YAML tag. It also adds a bunch of extra logging in the parser code to help provide context to any validation errors, and also clarify the config as it was understood by BuildGrid to make it easier to spot if something unusual is caused by a config issue.
Validation
Run BuildGrid with some example configs, and the broken one in #282 (closed).
Issues addressed
Addresses #282 (closed) and some of #262 (closed)
Edited by Adam Coldrick