Disabled autocommit on select
My thinking was that we should only explicitly commit when, first of all, it is warranted (by being a query that writes something) and second of all, that the commit isn't being managed elsewhere.

I am not aware of the need to open a transaction when doing SELECTs.  That seems odd -- can you provide a little more info?
 Thanks for reporting -- i didn't realize that psycopg2, as you said, opens a transaction every query.  This should be fixed now, and select queries will have their transactions handled correctly
 Great, thanks for the quick fix!

The `Database.execute_sql()` considers 2 parameters when deciding if to do a _commit_ after executing a statement:

``` python
def execute_sql(self, sql, params=None, require_commit=True):
    cursor = self.get_cursor()
    res = cursor.execute(sql, params or ())
    if require_commit and self.get_autocommit():
        self.commit()
    logger.debug((sql, params))
    return cursor
```

Two issues:
1. Shouldn't the condition be _or_-ed? At least the wording _require_ suggests this.
2. If no, why does a `SelectQuery` has set `require_commit = False`?

A continously running application which only does _selects_ opens a transaction once and keeps it open forever (tested with PostgreSQL).

Looks like a bug, isn't it?
