Run hooks and show errors for all projects and commits before quitting.

- Add functionality that formats and prints hook errors and context (project, commit info)
- No longer exit on first error.  Print errors for all projects/commits, and exit on error at the end.
- No longer throw exceptions for hook failures, instead return HookFailure instance.
- Move error reporting functionality into errors.py module
- Add hints to help user with common tasks (uploading only current project, updating hooks).

BUG=None
TEST=Ran with errors in multiple repos.  Ran with no errors.

Change-Id: I0b539a4f9ce31aac6d12e0239f203082439731df
Reviewed-on: http://gerrit.chromium.org/gerrit/558
Reviewed-by: Ryan Cui <rcui@chromium.org>
Tested-by: Ryan Cui <rcui@chromium.org>
2 files changed
tree: 2cd7c7a556e52ffb8008fe2889748abcd00d7279
  1. checkpatch.pl
  2. errors.py
  3. pre-upload.py