Raise exception if as_dict=True and column(s) have no names

This is an alternative solution to the issue in #157, suggested by @rsyring. 

@rsyring proposed that we modify pymssql to raise an exception when the user uses `as_dict=True` and then does a query which returns output columns that are not named; the current behavior of omitting those columns is very confusing -- e.g.:

```sql
SELECT MAX(x)
FROM (VALUES (1), (2), (3)) AS foo(x)
```

Note that we don't provide a name for the `MAX(x)` column above.

```python
cursor = conn.cursor(as_dict=True)
cursor.execute("SELECT MAX(x) FROM (VALUES (1), (2), (3)) AS foo(x)")
print(cursor.fetchall())
# Outputs:
# [{}]
# Whoa, what happened to MAX(x)?!?!
```

Currently, we don't add the column to the result row if it has no name. This confuses people. See [this mailing list thread](https://groups.google.com/forum/?fromgroups#!topic/pymssql/JoZpmNZFtxM) for an example.

I have a more detailed example at: https://gist.github.com/msabramo/8319097

So the new behavior with this change is:

```python
>>> cursor.execute("SELECT MAX(x) FROM (VALUES (1), (2), (3)) AS foo(x)")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pymssql.pyx", line 426, in pymssql.Cursor.execute (pymssql.c:5828)
    raise ColumnsWithoutNamesError(columns_without_names)
pymssql.ColumnsWithoutNamesError: Specified as_dict=True and there are columns with no names: [0]
```

and it works nicely even when there are multiple columns without names:

```python
>>> cursor = conn.cursor(as_dict=True)
>>> cursor.execute("SELECT MAX(x), MIN(x) AS [MIN(x)], AVG(x) FROM (VALUES (1), (2), (3)) AS foo(x)")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pymssql.pyx", line 426, in pymssql.Cursor.execute (pymssql.c:5828)
    raise ColumnsWithoutNamesError(columns_without_names)
pymssql.ColumnsWithoutNamesError: Specified as_dict=True and there are columns with no names: [0, 2]
```