Add fail to backend spec.

This allows a backend to differentiate between exceptions that occur in
the job (fail) and exceptions that occur in queue (abort).
Ensure complete is not called when abort happens.
Spec for Payload#perform calling fail on exception.
Call create on failure backend when Payload#perform raises.
Docs for failure module.
Add instrumentation for failure create.
Fix up spec for complete and fail.

These are so specific to the backend that implementation cannot be
tested so let’s just check the method does not fail when called with
the correct arguments.
Merge pull request #79 from bkeepers/failure

Notify backends of job failure