The current attempt to caches branches is ineffective -- we
query the list of branches during every tenant reconfiguration.
The list of branches for a project is really global information;
we might cache it on the Abide, however, drivers may need to filter
that list based on tenant configuration (eg, github protected
branches). To accomodate that, just allow/expect the drivers to
perform their own caching of branches, and to generally keep
the list up to date (or at least invalidate their caches) by
observing branch create/delete events.
A full reconfiguration instructs the connections to clear their
caches so that we perform a full query. That way, an operator
can correct from a situation where the cache is invalid.