Adapter ScrollableResults -> Spliterator

Spliterator is the source of data for the Java 8 Stream. This commit
contributes a Spliterator that wraps Hibernate's ScrollableResults.

The commit also contributes an abstract base class which captures
the concern of splitting into batches of configurable size, thus
supporting automatic parallelization of the stream.

Issues: SPR-12349, SPR-12388