Add finish-issue to attach code to an open issue

This is the same as (hotfix|feature) finish but converts an existing
issue into a pull request rather than making a brand new one from
scratch.
Merge remote-tracking branch 'origin/master' into finish-issue
Use abort instead of stderr + exit.

Abort writes to stderr and exits afterwards; thus, abort is a suitable
substitute for the two combinations that were previously there.
github.rb: use abort() in more places

And remove an extra exit()
Use one message for both pushes on hotfix merge.

The user will be prompted to enter a message in a tmpfile which will
then be concatenated to both merge descriptions.

This is to prevent having to write the same message twice.
Use read instead of each_line.

I don't need to process each line of the file so it would be more
efficient to just read the file.
Remove typecasting.

'filename' is already a string so it's silly to attempt to typecast a
string into a string.
Modify editor error message.

Use a colon to implicitly suggest what you need to do. Add a newline for
clarity.
Move require within the function.
Use git-var instead of git-config.
Make editor params more flexible.

The lack of duplication will allow additional editors to be added more
easily.
Use tempfile module instead of securerandom.
Call abort in die. Replace abort with die.
Remove unneeded comment.
Use one run_safe for `feature merge`.

This allows run_safe to print *all* commands that would have run if the
merge was successful.
Highlight messages and add newlines.
Switch to empty string instead of nil.
Use abort to exit script.
Prompt user only once for their commit message.

By using no-edit, git merge will automatically accept the message called
with it and no longer call $EDITOR.

I also shellescaped hotfix instead of using quotes. I feel that calling
this function results in the code being more explicit, because the coder
will easily recognize that the string is being shellescaped (rather than
relying on their knowledge of the effect of double quotes in bash).
Update submodule_update comment to new functionality.

submodule_update can now return the command it ultimately executes so
the comment above it reflects that.

It now expects a string as an optional argument.

Change trailing space above to period for correct grammar.