This patch fixes broken layout of some commands when there is Unicode
text in the ledger file.
I substituted System.IO functions with System.IO.UTF8. Now all strings
are Unicode internally, and take's and length's work correctly.
In particular, add, balance, hist, print and register commands seem
to work correctly; ui is still broken for me, I didn't try web.
I decode command line arguments from UTF8 forcefully, to permit
searches for accounts and descriptions with Unicode (otherwise, it
does not work).
The patch adds an additional dependency: utf8-string.
This patch does not include new test cases.