connect() doesn't allow sqlite://:memory:
The correct way is to write:

``` python
connect('sqlite:///:memory:')
```
 Doh, you are correct. Confirmed working, my apologies.

The following code does not work;

``` py
db = connect('sqlite://:memory:')

  File "/usr/lib/python2.7/urlparse.py", line 113, in port
    port = int(port, 10)
ValueError: invalid literal for int() with base 10: 'memory'
```

This is because `urlparse` doesn't see the above as a valid connection string, and rightly so. One option would be to check for this specific use case and handle accordingly [here](1), however this doesn't feel very clean and would force people to build invalid URIs.

```
def connect(url):
    driver, target = url.split(":", 1)
    if driver in ('sqlite', 'sqliteext'):
        if target == ':memory:':
            return schemes[driver](':memory')
```

It would seem `SqliteDatabase` already uses `:memory:` if no connection string is provided, and as such the following will work fine;

``` py
db = connect('sqlite://')
```

Although this feels like strange behaviour in someways, it's actually correct because `sqlite://:memory:` is not a valid connection strings, as mentioned earlier. Perhaps a docs update for `connect()` would be most appropriate here?
