Build out "Repository" functionality.

This is the first step in a larger set of changes. This
will allow us to use a repository to "run" code in some
repository specific context, but deal with a uniform
interface. This first step, just changes repository and
updates all callers.