get_author_info(): Encode using PREFERRED_ENCODING rather than str()

Our version of check_output() returns Unicode strings.

For Python 3.x, os.environ works with Unicode strings, so everything
should be OK.

But for Python 2.x, os.environ works with byte strings, so we have to
encode the output of check_output() to bytes.  str() can do the job
only for ASCII characters.  For non-ASCII, we need
s.encode(PREFERRED_ENCODING).

So, add a function env_encode() that does this encoding.  Include two
versions: one for Python 2.x and one for 3.x.  Change
get_author_info() to use this encoding function instead of str().

This should fix issue #62.
Include some non-ASCII characters in the test repository metadata
Merge branch 'issue-62'

Correctly encode strings that are to be written to the environment.
This fixes #62.
Get git-imerge to pass pep8 checks

pep8 was run with options `--max-line-length=99 --hang-closing`.
Remove duplicated code when adding arguments.

Tests pass successfully.
Fix the help text for subcommands that start new incremental merges
Tweak the help text for the --name option
Merge branch 'subparser-simplification'

Extract functions to help initialize subcommand parsers with less
duplicated code.
Exit with the same status as git merge.

When git-imerging a branch with no new commits the return
behavior should be the same as git merge. The exit status should
be 0 and the exit message should be sent to stdout.
Let NothingToDoError construct its own error message.

If needed, we could in the future provide access to `src_tip` and
`dst_tip` as NothingToDoError class attributes.
Merge branch 'exit-code'

Make subcommands "merge" and "rebase" behave like the corresponding
git commands when there is nothing to do.
Add bash completion
Merge branch 'rt/bash-completion'

Add bash completion for git-imerge.