Some cleanup? of unicode handling
Use locale.setlocale
Purpose built functions for unicode encoding/decoding
Use replace instead of ignore so it's obvious when a unicode character has been dropped due to encoding
Fixes #119.