[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.
I think we should add more tests, there are some ideas:
- argument with path separator
- absolute path
- block of tests inside of `if ffi.os == "Windows"` for Windows paths
- `len == NULL`

Perhaps it is worth to check both return values in each of these tests. And I think it is ok to test name more explicitly (without `path_tail`) with something like `strncmp`.