Update edit to better support spaces and args
When working with Sublime as my default editor on OS X I had set my
editor to:
EDITOR=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
Since the `ispath` function did not recognize this as a path (because
contained a backslash) this resulted in my editor not being recognized
as "subl" and line number support being unavailable.
The section of `edit` that deals with determining the user's editor has
been abstracted into a new function `editor`. Test cases have been
added for `editor` along with some basic tests for `shell_split`.
Note that `startswith` is used to identify alternative editor names:
- Sublime Text can refer to "subl" or "sublime".
- Emacs can refer to "emacs" or "emacsclient".