Add support for branch-specific badges

This PR adds support for serving branch-specific badges. This is very useful if you have jobs building multiple branches.

Currently I've only added support for Git. I'm new to Jenkins plugin development but I didn't find a SCM agnostic way to determine the branch name of a build. Please correct me if I'm wrong.

I've also introduced a `AbstractBadgeAction` class to share common functionality between the `BadgeAction` and `PublicBadgeAction` classes.

Please let me know if this is something you're interested in merging. I would love to get your feedback.
So I don't really know Java.  How does it deal with `import hudson.plugins.git.Branch` at the top of this file if the git plugin is missing?