[RFC] vim-patch:7.4.276

Neovim already has two pull requests for this patch: #841 and #773 by @euclio, the original author of the vanilla patch. It adds support for the fish shell. Without patch 276, fish users can only use plugins like syntastic if they have, in their .vimrc, `set shell=sh` or something similar.

I wasn't quite sure what to do with this for a while.  At first, I branched off of his patch and appended commits until it worked: https://github.com/splinterofchaos/neovim/tree/fish-patch. I found that travis kept failing it due to a memory leak introduced by [276](https://code.google.com/p/vim/source/detail?spec=svna6b59ee633a355095e6473ec5e2a7d9088bfb853&r=a6b59ee633a355095e6473ec5e2a7d9088bfb853) and solved by [297](https://code.google.com/p/vim/source/detail?r=81f5a056b2a582c8109da10cc538dc16a326a34d). 

So it seemed more logical to avoid the allocation altogether thus making 297 moot. Since neovim has `path_tail()`, I piggy-backed off that than implement `get_isolated_shell_name()`. The new `path_tail_save()` does the exact same thing, though I wondered if others might find it weird that it works for program invocations as well.
`get_past_head()` may basically be a no-op at the moment, but if and when this code gets ported to Windows, I think it will ensure this function doesn't break when the path starts with a drive letter.