[WIP] 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 can't personally test anything inside a Windows environment. Been Unix-only for roughly five years.

I agree that more comprehensive testing would be good. I thought about the `len==NULL` tests... just occurred to me I can call `invocation_path_tail` with a `NULL` len on every test and just assert the result is the same.