ENH support multiclass targets of dtype=object strings

Here's a first hack at fixing #2374, #2618. I think we should get this into the next release, since it seems it was a regression of 0.14 relative to 0.13 (or so says @samuela).

There are probably more parts of the code to test, but I thought the main invariance tests were low-hanging fruit. Feel free to offer further commits to the patch.