ENH: Allow unicode separators in to_csv & read_csv
- single byte UTF8 separators will always work if utf8 encoding is specified (i.e. seps in range(256))
- single byte delimiters with encodings will always work in Python 3, but will not work in Python 2 if they are multibyte when coerced to UTF8
- multi byte delimiters with encodings will not work on reads with C engine and will not work with writes in Python 2. (but I believe they'll work in Python 3 if they're considered to be length 1).

Closes #6035.

This was slightly complicated validation-wise, but I think it's in a good place
with tests and such. I'll squash together the commits and make sure I've
covered the relevant cases in tests.

I also noticed some weirdness with passing `delimiter` as a keyword argument that
might need to be addressed in the future.

CC @maxgrenderjones, @Midnighter if you want to take a look.
