Add OpenCL subset support
Syntactic sugar: Mat.zero_rows accepts a Subset
Add unit test for zeroing rows given by Subset
Modify the test for map conformity to sparsities

We need to take the boundary condition case into account.
Add subset index validation and reordering
Add docstrings to Subset
Don't allow creation of DataSets from Subsets
Allow construction of a Subset by indexing a Set

Instead of writing

    subset = op2.Subset(set, indices)

one may now write:

    subset = set[indices]
Allow constructing a Subset from an existing Subset

    subset1 = op2.Subset(set, idx1)
    subset2 = op2.Subset(subset1, idx2)

is now equivalent to

   subset2 = op2.Subset(set, idx1[idx2])
Allow construction of a Subset by indexing a Subset
Set _foo_size rather than _sub_foo_size properties on Subset

This allows us to use the superclass properties for core_part and so forth.
Expand Subset docstring
Permit tuple for indices in Subset construction
Add more Subset tests
Switch to __call__ syntax for Subset construction

Mixed objects will use indexing to pull out an individual entry, with
indexing on the entry being idempotent to simplify code.  This conflicts
with indexing to build subsets, so use set(indices) instead of
set[indices] for the latter.