[Courgette] PagedArray: Add Iterators and Parametrize Page Size as int Template.

This is a refactoring CL to enable PagedArray usage by libdivsufsort.
In addition to overloading operator[], for more general usage we need
need pointer-like accessors to PagedArray. To this end we implement
PagedArray_const_iterator and PagedArray_const_iterator, which merely
wraps a PagedArray pointer along with an index. We also add various
operators needed by libdivsufsort. For optimization, '<' and '<='
operators omits pointer checks.

By default PagedArray page size is 2**18 elements (1 MiB for int32_t).
To enable better testing, we made (log) page size a tepmlate parameter.

BUG=608885

Review-Url: https://codereview.chromium.org/2008553007
Cr-Commit-Position: refs/heads/master@{#397311}
2 files changed