Add an optional parameter "failonerror".

The intended behavior for this is to be able to rig hipchat so the
build doesn't fail if hipchat is down (as is the case at the moment).

+ unit test goodness.