Handle servers specified as unicode literals

So far `ES._check_server()` checked whether the given server was an instance of
`str`. This fails in case the server was specified as a unicode literal.

This commit checks whether the given server is an instance of `basestring`
instead of `str` to cover `unicode` objects as well.

Fixes #376.

NOTE: There are more occurences of `isinstance(var, str)` which I haven't come across yet, but which should probably be touched nevertheless.