Expose abstract git plugin as public api.

Background

Multiple BuildStream users are currently maintaining their own customised git plugins to cater to their specific use cases. As this seems to be a reasonably common occurrence we should consider making this easy for users.

We currently have an abstract implementation of a git source plugin in _gitsourcebase.py. We should consider exposing this as part of out public API in order to make it easier for users to customise the git plugin. In reality, users are already deriving from this abstract git plugin, so the question is whether we should 'officially' support this, making the appropriate stability commitments by the time we release 2.0.

Acceptance Criteria

The abstract _GitSourceBase and _GitMirror classes have been included in BuildStream's public api, if we decide this is something we want to do. //: # (Acceptance criteria should follow the S.M.A.R.T. principle https://en.wikipedia.org/wiki/SMART_criteria )