Allow custom labels for integrated services.

This PR allows for customizable labels on any badge that is driven by a third-party service. Some example usages for this include:

- When displaying build results for multiple branches, 'build' can be replaced with 'develop' or 'master', or some other value, in order to differentiate the two results.
- Similar idea for branch test coverage.
- When a project exists on both NPM and Packagist (for example, Twitter Bootstrap), 'downloads' can be replaced with the name of the repository to differentiate the two.

Custom labels can be added to any of these services by simply adding a 'label' query parameter (e.g. ?label=foo). The value of the label parameter follows the same escaping rules as other custom text.

Example images from a Heroku instance running this PR:

![Node 0.6 Travis status](http://serene-ocean-2167.herokuapp.com/travis/joyent/node/v0.6.svg?label=0.6)
![Jekyll master Coveralls status](http://serene-ocean-2167.herokuapp.com/coveralls/jekyll/jekyll/master.svg?label=master_coverage)
![Localeval NPM downloads](http://serene-ocean-2167.herokuapp.com/npm/dm/localeval.svg?label=npm)
![Doctrine ORM Packagist downloads](http://serene-ocean-2167.herokuapp.com/packagist/dm/doctrine/orm.svg?label=packagist)