Java: add a common iterator class for various iterators we use

Change the iterator behavior to never throw a RuntimeException
but to terminate early instead, reporting any errors encountered
via a separate method.

Also unified syncbase Stream and iterator.  The end result is that
the only way to close the syncbase Stream is to cancel the context.

MultiPart: 1/2

Change-Id: I7f49270f69aa805761a7cd14a0cda4e8d94e4ea7
21 files changed