Use urlsplit() to parse the URL.

This changes the parser to use the stdlib's urlsplit() function to break
up any URL into its parts.  This mainly is necessary to allow for more
complex URLs, like the ones used on Heroku, so that security components
aren't discarded and port numbers are optional.  For example, Bonsai's
Elasticsearch requires a connection URL of the form:

    http://username:password@hostname

This has a username, a password, but _no_ port number and still is
a valid URL that Elastic should be able to use.

Other consequences of this change:

Having this avoids the need specify the `connection_type` any longer, so
I've removed that param.  Also, you can use it to immediately specify
the path.

I've also removed both the `connection_type` and the `path` argument
from the README.  The `connection_type` does not exist anymore and is
replaced by the URL's scheme string.  The `path` argument is only used
internally.  It still exists and will always override the URL's path
component, so the behaviour isn't changed.

This isn't documented to make the public API simple and the README less
confusing.
Fix docstring.
Error explicitly when the port number is omitted for thrift connections.
Make code a bit more Pythonic.
Better assume thrift to be available and error in the Elastic constructor.

It makes the code much simpler.
Added kwargs support to constructor.  Refactored urlsplit code.