Report YAML parse errors

The SourceContext is extended to support storing a path, and we
define our own YamlLoader to use that to include a complete
file location in the yaml error message, rather than "unicode string".

The resulting report looks like:

Zuul encountered a syntax error while parsing its configuration in the
repo org/project on branch master.  The error was:

  while parsing a block collection
  in "org/project/.zuul.yaml@master", line 2, column 1:
    - job:
    ^
expected <block end>, but found '?'
  in "org/project/.zuul.yaml@master", line 3, column 1:
    foo: error
    ^

Change-Id: I51cec01e45adaad5abeda9bf665cc0358b45486f
4 files changed