add executeAndFetchTableLazy

Resolves https://github.com/aaberg/sql2o/issues/49

This probably **needs tests** before it is merged. That said, all existing tests still pass. Posting pull request for now so @aaberg can review.

Basic usage:
```
LazyTable lt = executeAndFetchTableLazy();

// can get name
String name = lt.getName();

// or columns
List<Column> cols = lt.getColumns();

// or iterate through rows (java 7)
try (ResultSetIterable<Row> rows = lt.getRows()) {
    for (Row row : rows) {
         // do stuff here
    }
}
```

Quick highlights:
* add `ResultSetIteratorBase<T>` used for both lazy table and pojo mapping
* add `TableResultSetIterator` and `PojoResultSetIterator`
* tweak internal row/table methods