More Python 3 fixes

This is a work in progress, and I am aiming to try and get the test suite to pass in Python 3.

Related issues:

* 
https://github.com/scikit-image/scikit-image/issues/1187

* https://github.com/numpy/numpy/issues/5145
* https://github.com/astropy/astropy/issues/3013

(jeez, this is turning out to be quite the bug hunt)
@ChrisBeaumont - Actually, are you sure it doesn't already work as you would like? If you pass a pandas object it will currently not validate as a numpy array so it will iterate over them to check that they are all strings, then make a string array out of them. In fact, I think there are already some tests that use pandas.