Add Facility for Accessing Active Subset of Global Data Array

This change-set introduces a fairly general mechanism for accessing the active subset of a global grid (property) array.  Essentially, this takes on the role of translating the active cell index through the `global_cell` mapping when accessing, e.g., the net-to-gross data value.
    
The primary component is class template
```
Opm::GridPropertyAccess::Compressed<DataArray,Tag>
```
which implements a read-only
```
value_type operator[](const int c)
```
that encapsulates and performs the compressed-to-global cell index translation.  The class understands that `global_cell==0` implies "all cells active". Template parameter `DataArray` is intended as a policy parameter that for instance wraps access to a [`GridProperty<T>`](https://github.com/OPM/opm-parser/blob/master/opm/parser/eclipse/EclipseState/Grid/GridProperty.hpp) from module opm-parser (with a fall-back default value if the data is not specified on input).  The `Tag` parameter is a provision for type safety--e.g., to prevent passing a region ID into a function that requires a  porosity value.

While here, also heed @atgeirr's [remark](https://github.com/OPM/opm-core/pull/635#issuecomment-53484088) on the opacity of the `permeability_[]` assignment index expression and add a commont on why it's written that way.
Can this class (which is the main feature) be moved to the top? As long as the other types defined here are used as template parameters they should not be needed until instantiation time.