EclipseState: export the IMPTVD and IMKRVD tables

and also fix a small build bug in these table classes. I don't know
why they have not been also fully dealt with in the recent table code
refactoring...
data items: allow to set only a subset of the values

e.g. Eclipse specifies that for PERMX only the topmost layer needs to
be specified, i.e. the following is valid on a 3x3x3 grid

```
PERMX
9*10 /
```

the previous behaviour was to throw.

also, mark if data items have been defaulted, i.e., the item of

```
PERMX
* /
```

will now return true for 'defaultApplied()'.
GridProperties: don't use the garbage from defaulted data items

e.g.

```
SWL
10*0.1 10* 10*0.2 /
```

resulted in the SWL keyword exhibiting undefined values for the middle
ten data points.
change the defaults for the *NUM integer properties to 1

and add the ENDNUM integer property.
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
GridPropertyInitializers: add unit test
add the PORV grid property and use NaNs as default values for most double grid property

when it comes to PORV, the final pore volumes of logically Cartesian
grids are hard to implement at this abstraction level because pore
volumes may be either specified using the PORO or by the PORV keywords
and both of them are grid properties. This means that to calculate the
pore volumes using the porosity, the porosity grid property must be
already finished when creating PORV. Because of potential interactions
between the PORV and PORO grid properties this is not possible to do
canonically at the grid property initializer stage...
Merge pull request #278 from andlaus/implement_GridPropertyInitializers

Implement grid property initializers
check if the keyword item has sufficiently many data points before using defaultApplied()

this fixes the GridPropertyTests unit test. The morale of this is that
I should probably never trust my own stupidity...
Merge pull request #306 from andlaus/fix_GridProperties

check if the keyword item has sufficiently many data points before using defaultApplied()
Added getNXYZ() to the grid property.
Added MULTNUM keyword
Updated FaceDir functionality to support MULTREGT
Removed dummy -1 default values from MULTREGT
Added class MULTREGTScanner

The class MULTREGTSCanner internalizes the content of one or several
MULTREGT keywords and can then scan through GridProperty region objects
to find region interfaces as specified in the MULTREGT keyword.
Integrated the MULTREGT in the EclipseState/TransMult
Renamed GridProperty::size -> GridProperty::getCartesiansize
Merge pull request #304 from joakim-hove/MULTREGT

Initial MULTREGT support
Updated the PLYVISC keyword