Properly support multibyte character paths

Yay Unicode.
Apparently std.algorithm.take is automatically aware of the stride
of multibyte characters. Sweet.
Added flags

You get --help, --version, and --shorten-at-length