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.
If they all succeed or all fail they may be considered superfluous, but I do not agree that is the situation. To the current example: if all multpv-values are different from 1.0, we would only see the first one reported, and then the test would stop. It is useful to see all test results that can run, to get a better picture of a failure. I therefore think REQUIRE should be used only when necessary, for example:
```
...
BOOST_REQUIRE_EQUAL(v.size(), 4);
BOOST_CHECK_EQUAL(v[3], 42);
...
```