added client implementation of file and directory name encoding

The server only cares that the file and directory name used is compatible
with it's file system. The client ensures this by only using standard
characters. However, the client can fully implement its encoding including
the stash format for files and directories. I was using base 64 but it
is hard to be readable and creates some long names so I switched to a
custom but simple encoding.