Add option for specifying the text encoding used by Mercurial

When a mercurial repository does not use utf-8 for encoding author
strings and commit messages the "-e <encoding>" command line option
can be used to force fast-export to convert incoming meta data from
<encoding> to utf-8.

When "-e <encoding>" is given, we use Python's string
decoding/encoding API to convert meta data on the fly when processing
commits.
Make -e option apply to imported filenames

When the -e option is given, convert imported filenames just as we do
for metadata and author information.
added submodule handling
Update README to list requirements.