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.
Some people name their branches with slashes inside, e.g. "mgedmin/fix-bug-1234".  Stripping everything up to the last "/" would make it impossible to distinguish between them.

Perhaps check if `branch.getName().equals(branchName) or branch.getName().endsWith("/" + branchName)`?  (This would make it impossible to distinguish "master" from "bob/master", but meh.)