github-commit-link: Loosen regexp to match 7-through-40-char hashes

Instead of 7-or-40-char hashes (e.g. not 8-character hashes).  The
{m,n} syntax is part of POSIX's basic regular expressions, although
POSIX uses \{m,n\} [1].  It looks like CoffeeScript also supports this
range syntax [2]:

  | \.{2,3}           # range or splat

but I couldn't find a clear regexp specification while skimming the
CoffeeScript docs.

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_06
[2]: http://coffeescript.org/#regexes
github-commit-link: Add support for repo@<SHA> and user/repo@<SHA>

Based on similar parsing in github-issue-link.coffee.  The main change
in the logic is that the initial .* is now the non-greedy .*?, so it
doesn't gobble up the repo-part of the regexp [1].  The user/repo
portion is [^\s@]+, which matches one or more characters that are
neither whitespace [2] nor @.

The non-capturing (?:...) block [3] around the optional repo@ or
user/repo@ qualifier allows us to group the qualifier with its @, even
though we only need the repo or user/repo (without the @) in our
internal logic.

I use CoffeeScript's block regular expressions to comment the regexp
[4], and CoffeeScript's existential operator '?' to check if
'msg.match[1]' is defined [5].

I also document the fact that lines matching 'commit/' are ignored.

[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-questionmark
[2]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-white-space
[3]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-non-capturing-parentheses
[4]: http://coffeescript.org/#regexes
[5]: http://coffeescript.org/#operators
github-commit-link: Only show the first line of the commit

This is traditionally the message summary.  From Git's own docs [1]:

> The first line of the commit message should be a short description
> (50 characters is the soft limit, see DISCUSSION in git-commit(1)),
> and should skip the full stop.

I sometimes write long, detailed commit messages (like this one), and
there's no need to spam the channel with all of this motivational
background.  The summary line should be sufficient context there, and
folks looking for more information can follow the URL (which I've
moved to it's own line).

[1]: https://github.com/git/git/blob/v1.9.0/Documentation/SubmittingPatches#L89
Merge pull request #1364 from wking/github-commit-link

github-commit-link: Support user/repo@SHA and shorten response