Change default behavior of git story-merge

It now accepts an optional target branch to merge into, as in

    $ git story-merge development -f
Prep for -f and -d in story-merge

The main changes are putting common code for commit messages
in the command class and changing -f to -o to override the
check for finished/delivered commands.
Add (back) the story id to merge commits

The story id now appears in the merge commit. This used to happen
automatically when the id appeared in the first line of each commit;
this was due to the use of the `--log` flag, which includes the first
line of each commit message. The recent change of putting the id
on a separate line broke this behavior, though I didn't actually
notice; the motivation for this change was to be able to mark
merges as delivered at the same time the merge is made. This is due
to a new workflow I've been trying out, which is useful when there
are several related stories. For example, we might have a set of
refactorings:

    $ git checkout -b refactor
    $ git checkout -b preprocessor-62831853
    $ <changes>
    $ git story-merge -d refactor
    $ git
    $ git checkout -b postprocessor-31415926
    $ <changes>
    $ git story-merge -d refactor
    $ git push-branch

This arranges to bundle each set of changes into a single merge
commit, each marked as delivered using the `-d` flag. The call
to `git push-branch` (part of
(git-utils)[https://github.com/mhartl/git-utils]) will then
mark both stories delivered at Pivotal Tracker. You can then issue
a single pull request (using `git story-pull-request`), which
naturally packages the two refactoring stories into one unit for
convenient review.