Added new EclipseGrid constructor

The new EclipseGrid constructor EclipseGrid(nx,ny,nz , GridSection)
allows the construction of a GRID without the RUNSPEC section.
Merge pull request #280 from joakim-hove/EclipseGridConstructor

Added new EclipseGrid constructor
Add dimension (length) to THRESHOLD_THICKNESS item.
Also add dimension to MAX_EMPTY_GAP property.
Merge pull request #281 from atgeirr/pinch-threshold-dimension

Add dimension (length) to THRESHOLD_THICKNESS item.
Add isPinchActive() and getPinchThresholdThickness() members.

Now reading the optional PINCH keyword from the GRID section.
Add test for pinch features of EclipseGrid.
Make getPinchThresholdThickness() throw if isPinchActive() is false.
More tests for proper pinch-related behaviour.

Now also check behaviour for no-pinch case.
Follow opm-parser naming conventions for data members.
Name magic constant (invalidThickness).
Merge pull request #282 from atgeirr/pinch-eclipsegrid

Add pinch features to EclipseGrid class
grid properties: introduce initializer objects

this makes it possible to define more complicated initializers for
grid properties. (needed for example for keywords like ISGU.) This
patch does not introduce them yet, but only adds the necessary
infrastructure.

notes:

 - to get around cyclic definitions in template classes, the
   EclipseState is changed to a (defaulted) template parameter which
   causes the compiler to only look up the class definition at
   instantiation time.
 - using std::shared_ptr in the property initializers would lead to
   cyclic references which would cause memory leaks. To avoid that,
   plain old references where used in most places. I think this is
   okay as the GridProperty objects should be considered internal to
   EclipseState and thus the EclipseState object should live at least
   as long as GridProperty objects...
grid properties: implement a table-lookup initializer for the endpoint scaling keywords
Grid properties: process the integer grid properties fully before starting with the double ones

this is needed because the initializers of double grid properties
sometimes need the final value of integer properties (like SATNUM,
etc)
EP-scaling initializer: use the integer grid properties instead of the keyword directly

this is required as sometimes these fields are processed and sometimes
the keyword corresponding to the field is not present in the deck:

```
SATNUM
1*1 /

COPY
'SATNUM' 'IMBNUM' /
```

(this deck will have an IMBNUM property but no IMBNUM keyword.)
fixup! grid properties: implement a table-lookup initializer for the endpoint scaling keywords