BUG: Raise ImportError when provided URI, but sqlalchemy is not installed.
Rather than presume that it is an sqlite database and provide a confusing error.

Running (without sqlalchemy installed):

``` python
import pandas

db_uri = "postgresql://user:pass@localhost/db"
sql_query = "SELECT * FROM test"

pandas.read_sql(sql_query, db_uri)
```

Produces:

``` python
pandas/io/sql.pyc in execute(self, *args, **kwargs)
   1532             cur = self.con
   1533         else:
-> 1534             cur = self.con.cursor()
   1535         try:
   1536             if kwargs:

AttributeError: 'str' object has no attribute 'cursor'
```

Which links to:

https://github.com/pydata/pandas/blob/master/pandas/io/sql.py#L1534

Zooming into the problem:
1. https://github.com/pydata/pandas/blob/master/pandas/io/sql.py#L631-L637
2. https://github.com/pydata/pandas/blob/master/pandas/io/sql.py#L612-L619
3. https://github.com/pydata/pandas/blob/master/pandas/io/sql.py#L64-L68

So it looks like the URI is passed through and simply assumed to be a sqlite/mysql database object (using the old method), even if it isn't.

Raising an import error when a `URI string` is passed back by `_engine_builder` should solve the issue.

@anirudhjoshi Thanks a lot for your contribution! 
However, there is already a recent PR that tries to solve the same issue: https://github.com/pydata/pandas/pull/11920. That is not merged yet, but I will let the author of that PR the chance first to update it.
 Sure thing. I did a search, must have missed it.

Although I believe his error raise is in the wrong area.
