ENH: Allow unicode separators in to_csv & read_csv

* unicode delimiters coercible to ASCII (e.g., `u(',')`) are always
  allowed.
* unicode delimiters that don't fit within ASCII are always disallowed
  with C engine.
* unicode delimiters that don't fit within ASCII will never work in
  Python 2 engines (because their CSV assumes seps are unicode), but are
  allowed with Python 3.

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.