Add SourceContext class

This replaces all of the instances where we were passing around
triplets of project/branch/secure.  This significantly simplifies
the code.

It also ensures that every unparsed job or project config has
a source context associated with it, since it truly is required
by jobs.

Change-Id: I46fa9cc48f5ee57be0d9ad28b2f3c23a8d204d69
3 files changed