magit.el: execute git grep on toplevel directory

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
magit.el: use word-at-point as default input to grep

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
define magit-single-file-log command and bind it in logging popup
fixed some style issues
added dedicated history variable for magit-stash
defined dedicated washer for unpulled and unpushed commits
added tests for unpushed commits
remove hard-coded value

In the future, this constant should disappear anyway.
don't check for exact buffer name

This is unnecessarily retrictive. check for compatible major mode instead.
fix issue 628

magit-log-author-date-overlay wasn't buffer-local
rename internal functions
Merge branch 'sergv/master'
Merge branch 'issue-628'
Fix regression in `magit-refresh-wrapper' that caused status buffer to be refreshed twice.

This was introduced in 361f2d60: a manual conversion of `cl-adjoin'
missed a negation.
Merge pull request #635 from ncalexan/nalexander/refresh-regression

Fix regression that caused status buffer to be refreshed twice.
Merge commit '25b5f6e3ca7f9892ce607121aaf5c4409b994b19' into artagnon/grep
fix byte-compilation
Merge branch 'artagnon/grep'
Merge remote-tracking branch 'origin/master'
Using just emaclient as editor if server-name is the default value.

Otherwise there are problem on windows (Closes #497)
There is still a problem with non standard server name on windows, but
this commit fix most common case.