Make more of my Mac-side functions work on non-Macs

...do that by using $EDITOR (or friends $EDITOR_DONT_WAIT and
$EDITOR_NEW_WINDOW) in my functions and aliases.  Clean up functions to make
them more regular (add 'function' and parens; split into multiple lines when
needed; give them longer names---use the tab key more).  Here's what all the
functions do

    cd_top
        cd to the top of the current git working copy (that is, the directory
        that contains .git/)

    did $command
        list every use of $command in your history

    dirty
        print the relative paths of all the files currently modified or
        unmerged

    edit_committed $commit
        open all the files that changed in $commit (or in HEAD if $commit is
        omitted) in your editor

    edit_dirty
        like dirty(), but instead of printing the matches, open every dirty
        file in your editor (for instance, to resolve conflicts)

    edit_name $leafname
        like f(), but instead of printing the matches, open every found file
        in your editor

    edit_which $leafname
        find the script named $leafname on $PATH and open it in your editor

    f $leafname
        print the relative path of every file named $leafname anywhere
        (recursively) within the current directory

    fcd $leafname
        same as f(), but instead of printing the matches, cd to the directory
        containing the first match.  Not sure what to do here when there are
        multiple matches.

    fd $searchdir $leafname
        same a f(), but start in $searchdir instead of the current directory

    flake
        run pyflakes on all the *.py files that are currently modified (but
        not yet added or committed)

    flake_committed $commit
        run pyflakes on all the *.py files that were changed in $commit (or in
        HEAD if $commit is omitted)

    flake_dirty
        find all the *.py files in dirty() and run pyflakes on them

    flake_name $leafname
        same as f(), but instead of printing the matches, run pyflakes on
        every found file

    get_dir
        current working directory, but use ~ instead of $HOME if appropriate.
        Suitable for use in a prompt.

    get_sha
        get the commit hash for HEAD.  Suitable for use in a prompt.

    push.
        push the current branch (instead of git push blah blah)

    push+
        force push the current branch (I know... so don't use it!)

    push-
        delete the current branch on the server (yeah, really don't use this)

    refresh_ssh
        fix stale ssh auth (e.g., when tmux or screen loses it)