ENH: ExtentUtilities Updates

This commit introduces the following changes to
the ExtentUtilities functions:

(1)Changed ExtentUtilities to use ID_T for extents.
Further, propagated this change to other classes
and utilities that make use of ExtentUtilities. All
affected codes by that change, e.g., ExtentPartitioner
and cosmotools-driver have also been updated to reflect
this change.

(2) Support different index space orderings.
Currently,ExtentUtilities supports indexing first in
the i-, then j-, then k-directions, as well as, first
in the k-, then j-, and then i-directions (used in HACC).
The calling application can specity the desired ordering
via an optional parameter in GetLinearIndex() or
GetStructuredCoordinates(). Different orderings can be
added in the future as well.

(3) Added a simple test for ExtentUtilities

(4) Implemented ExtentUtilities::WithinExtent

(5) Implemented  Local-to-Global IJK mapping functions

(6) Implemented method to grow the extent ExtentUtilities::Inflate

(7) Implemented method to check if an extent is a sub-extent of
another parent extent.
ENH: Added GetArrayPointerMacro

This commits adds the GetArrayPointerMacro, which returns a pointer
to an array of a internal class member.
ENH: StreamCounter Refactoring

This commit introduces rudimentary changes to the
data-structures used by the stream-counter and a
more streamlined algorithm and implementation. Older
implementation is moved to a reference folder (for now).
ENH: Computation of multi-stream and density field

This commit adds a new class, ProbeVirtualGrid, which extends
the functionality of the VirtualGrid class for storage and
computation of the multi-stream and density fields on the
nodes of the virtual grid, which is typically a refined
version of the initial lagrangian mesh.
WIP: Adding stream-count utility

stream-count utility...