Result/row iterator rewrite

In libpqxx 8.0 I want to rewrite the result/row iterator classes so they're completely separate from the row and field classes.

I think this will end up being both clearer and faster. It's also an opportunity to make result::const_iterator::operator[] comply with the C++ standard. A call to my_iterator[n] should return *(my_iterator + n), not index column number n on the current row.

Iterators will no longer increment the the refernce count for the result object they're iterating. So you'll need to be a bit more careful with lifetimes. Based on my experience prototyping the change, it shouldn't affect many people.