Add --head-only and --package-name options.

Adds a new --head-only option which can be used to make Delorean
build only the most recent Git commit for each project.

Also adds a new --package-name option which can be used to
build only a specific package.

As part of these changes the getinfo function was refactored to
return a project "to process" list rather than passing one into
the function. We also moved some of the logic out of getinfo to
make things cleaner.

Change-Id: I0cd77058af6ddca709956675f23b501c2997fc83
Email changes
Populate the build log with something if its empty

People get pointed at it in emails, and its confusing if it contains nothing.
Install pbr before creating the sdist.

Updates the build_rpm.sh script so that we pre-install
python-pbr. Many OpenStack projects use pbr as
part of setuptools and pre-installing it as an RPM
prevents it from being downloaded via pip.

Change-Id: I3edf27ede9bbcb38ecfd7d3121c404faf37d6c14
Make use of Commit object

Use the Commit object to pass details around, using a list can get
overly complicated and confusing.

Change-Id: I79e6e1474a38dd0e713fa73f8f4894b22f5381f5
Trigger a new build on spec changes

If the spec changes we'll want to trigger a new build as
opposed to waiting for another commit to the repository.

Change-Id: Ic717c2c158117dac052cd84775f0a7899abf416a
Throttle project emails

Only send email's about failures a maximum of once every 24 hours per
project.

Change-Id: I71f42474f7cc8b1cfd3356569cbf09e264fcd9e5
Generate report of failing packages

Add second report to generate a report of failing packagesso we
can easily identify which package are in need of being updated.

Change-Id: I675bb48993eb5532f0b253d1f3e7338f7337a3af