Reorganize example

The entire setup will happen with the fine grid as all input data is
made for that. Just before we start the simulation, we switch all the
objects with upscaled variants.
Skeleton of rock/fluid/material object
Update example to pass fluid objects too
Fluid properties are unchanged in VE simulation
Helper object to do integration in columns

Logically, its methods are part of the grid, but the implementation
is independent of how we create the grid, so it is a helper class.

It is not used by the clients of the module, so I haven't made any
effort to hide the implementation details.
Provide fluid object with the grid to upscale on
Forward structural information from the grid
Fetch data for a property from the fine grid
Compute depth-averaged property of each level in a column
Elevation algebra to reason about discretized heights
Provide way to query about column length
Perform table lookup to find weighted depth fraction of column
Averaging routine that doesn't store intermediates

We could also have implemented this by using the weighted depth (due
to commutativity) but then we would need storage for all the
intermediate values, which we don't need.
Allowable range in upscaled code is all saturations

There is no "residual" heights in the columns.
Upscale porosity and abs. perm.

Upscaled porosity is simply the depth-averaged porosity of all the
fine grid blocks in each column.
Merge pull request #19 from rolk/019_fluid

Fluid and rock properties object, containing porosity and abs.perm.