Support for database URLs

With a bunch of tests.

Of note:

1. in the case of information present in both URL and "normal" parameters, I'm currently giving priority to the information from the URL; IMO this makes more sense than vice versa (base info would be defined in params, and each developer or environment has a URL that may or may not override that base info, such as charset)
1. the syntax for SQLite is `sqlite:///relativepath.db` or `sqlite://ignoredhost/relativepath.db` for relative, and `sqlite:////tmp/absolutepath.db` or `sqlite://ignoredhost//tmp/absolutepath.db` for absolute paths to the database file (I went back and forth on this, but this way is easier and more consistent; https://github.com/kennethreitz/dj-database-url does the same)
1. extra query params are simply "copied" into `$params` verbatim; makes sense IMO especially considering point number 1
1. the URL/driver mappings may need some review
Ah, I understand your question now. Well, we'd have to `preg_match()` around to find the underscores (`parse_url()` returns the entire URL as the path component when using underscores there). If we don't do that, we end up with not enough info in the URL, and the process will fail later (see the tests, very last two test cases). So all good.