Fix non-ASCII dictation handling

This change fixes the handling of Dictation element results that include
non-ASCII characters, for example the last letter of "touché". It
modifies Dragonfly logic related to Dictation elements to use Unicode
objects internally and adds encoding and decoding to and from
windows-1252, as used by Dragon NaturallySpeaking, at the appropriate
places.

This change adds several tests verifying correct handling of non-ASCII
characters in dictation results.

Resolves #11.
Add __unicode__ method to ActionBase
Include words when Mimic action converted to str
Decode Paste action input using correct charset
Improve error reporting during engine loading
Encode log output during recog parsing

Before this change the messages where output without an explicit
encoding, and were therefore encoded using the default ASCII charset,
leading to errors for non-ASCII characters (for example in "touché").
This change uses UTF-8 as the encoding for log messages.
Improve error message for non-typeable characters
Add tests for non-ASCII handling by actions
Fix Word class' handling of unknown words

The Word class uses natlink.getWordInfo() to retrieve formatting
information. That function returns None if the word is not present in
the dictionary. Before this change, that resulted in an error. After
this change, such unknown words are treated as if they don't have any
formatting info.

This change also adds test cases for the Word class.
Merge branch 'feature/non-ascii'
Fix missing import

The Transition class raises an ActionError after a timeout waiting
for a context switch. However, before this change the ActionError class
wasn't imported.
Encode word to correct charset for natlink

Dragonfly stores words from dictation results as Unicode objects
internally. This change adds conversion from Unicode to the
windows-1252 charset before passing words to natlink.getWordInfo()
to retrieve formatting info in the Word class.