read_sql/to_sql can accept database URI as con parameter
It should fix https://github.com/pydata/pandas/issues/10654

I should have remove

```
engine = sqlalchemy.create_engine(db_uri)
```

in `test_sql.py` `test_to_sql_read_sql_with_database_uri`
 Looking good!
- We will have to remove the file 'iris.db' again afterwards. You can have a look at `tm.ensure_clean()` to use this.
- the `import sqlalchemy` will have to be wrapped in a try except block, as it is not guaranteed that this is installed. You have a `_SQLALCHEMY_INSTALLED` constant, but the problem is that this is only initialized the first time `_is_sqlalchemy_connectable` is used, and the `engine_builder` is called before that in case of `read_sql_table`
 @scls19fr To change things, you can just add more commits in the same branch and push again, then this PR will be automatically updated.
 I think that's ok now.
 And we'd be grateful if you could squash these down to one commit. Let us know if you need any help: https://github.com/pydata/pandas/wiki/Using-Git#fetch-and-then-rebase-interactively-to-squash-reword-fix-otherwise-change-some-commits
 I'm facing some issues to squash. Any help is welcome.
 Normally, the following should do it:

```
git fetch upstream
git rebase -i upstream/master
```

Then you will see a pop-up window (or a vim session), where you can change occurences of 'pick' to 'squash' or 'fixup' 
And force push the branch again: `git push -f origin issue_10654`

But no worries, if you can't get it working, I can do it for you before merging
 That's nice I'm with Tom on Gitter
 @jorisvandenbossche I think we're good on the rebase.
 @scls19fr Thanks a lot for your contribution!
