Add presubmit check for GN headers and code formatting.
Add presubmit check for GN headers and code formatting.

These two checks are lifted directly from the Chromium code base. Also
adds a presubmit check for a patch description. Also adds some checks
to the "on commit" function so "git cl presubmit" can work.

Also reformats the style of the presubmit script a bit to match the
patterns in the Chromium presubmit.

Bug: angleproject:2626
Bug: angleproject:3054
Change-Id: Iff29b8856cf9eb9531e893cd0b0d80c0834b7676
Reviewed-on: https://chromium-review.googlesource.com/c/1403255
Reviewed-by: Shahbaz Youssefi <582eeec4f08a2ccd61e3ef52115e6e7c571582de@chromium.org>
Commit-Queue: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>

ppy/angle,ppy/angle,ppy/angle,ppy/angle