Add shadow_reference support to trebuchet

This change adds a new boolean configuration option for repos
named shadow_reference. When true, this option will create and
maintain a git reference clone of this repo in a dot directory.
For instance, if a repo has a name test/testrepo, this option will
create a git reference repo at test/.testrepo.

Though this change uses a reference repo for the primary repo, all
submodules will be full clones from the repo on the filesystem.

Change-Id: I2737ce42527c84c05167b3dcc96b5638c8732852
Merge "Add shadow_reference support to trebuchet" into production