URLParameters and ConnectionParameters accept unicode strings

When passing a unicode string to `URLParameters` or as the `virtual_host` or `locale` arguments to `ConnectionParameters`, a `TypeError` is raised.

The only field that is correctly validated is `host`, because it checks against `basestring`, not `str`.

Also, in `ConnectionParameters`, the field `virtual_host` is validated by `_validate_host`, not by `_validate_virtual_host` as in `URLParameters`.