SQL accepts database/schema name

Continuing on from #687 Fixes #786

Can specify a database name when creating a SQL object

```Python
SQL('postgresql://localhost', 'accounts', db='mydb', schema='{name: string, value: int}')
```

This also works with resource strings with periods as separators

```Python
resource('postgresql://localhost::mydb.accounts', schema='{name: string, value: int}')
```

@catherinedevlin Does this look alright to you?

@laserson hopefully this fixes the issue we were having with Impala.