ENH: Slab decomposition & partitioner improvements

The ExtentPartitioner class is modified to store extents
in a priority queue. The largest extent, has highest priority
and is always on top. Consequently, when partitioning the
index space, the biggest extent will always going to be split
next which yields better load balancing. Further, added the ability
to partition the index space in to slabs, as opposed to a pencil or
RCB decomposition.
ENH: Add decomposition method parameter

This commit adds functionality for prescribing the desired
decomposition method to the stream counter from the command line.
This parameter is applicable when OpenMP is enabled and allows
the user to control the type of decomposition, e.g., SLAB or RCB.