Dev alex

@txels Another big one for you ;)

# What does this add?

 - The zope interfaces as requested ;)
 - Adds an initial stub of a github plugin
 - Adds an extendable end-to-end test with some dummy plugins.
 - Adds the core functionality of creating the branch info.

# What still needs to be done?

 - Code that handles the creation of hierarchical branch trees
 - git plugin code to look across a group of repos.
 - git plugin code to use hierarchical trees to determine merge statuses
 - Code to handle multiple plugins - we'll need to merge data between them I suspect.
 - Code that passes per-plugin settings to the plugins.
 - There's inconsistency in the naming between ``providers`` and ``plugins``. Which do you prefer?
 - Creation of jenkins plugin.