Add failing test for streaming 2i.
Add front-end to stream_index operation.
Fix bug in test.
Implement basic streaming of secondary index responses.

There are edge cases around the response format in the stream iterator
classes that I hope to address in future commits. They are helpfully
marked by "WAT".
Add return_terms option.
Add pagination to secondary indexes, commit the first.

This introduces the IndexPage class, which is necessary both to wrap
the results into a sensible API, and to provide consistency between
single-roundtrip and streaming options. The IndexPage class can appear
as if it were a list, is iterable for streaming and regular iteration
purposes. Regardless of whether pagination is used, an IndexPage will
be returned (thanks to the quirkiness of Python's generators).

This leaves equality/return-terms dangling, to be addressed in the
next commit. Sending an equality query with the return-terms flag on
does not result in pairs being returned, but simply keys. Obviously,
the client knows what the index term is and so can inject it into the
result (which is what we will do for consistency).
Add pagination to secondary indexes, commit the second.

This refactors a bit of the IndexPage class so as to support the
equality/return-terms issue left dangling in the last commit. Along
the way, I added a test for streaming with the eq/rt combo, and
discovered an issue where the PBC interface returned the `keys` field
from the response directly when it was expected to be a list. This
wouldn't normally be an issue, but was necessitated by the eq/rt
issue.

This completes the work for #252.
Merge pull request #252 from basho/gh252-1.4-2i-improvements