Add MINPV processing to GridManager

This adds a new class MinpvProcessor, and a new constructor for the GridManager class that uses it to support the MINPV feature: ensuring that cells have a certain minimum pore volume while connecting the remainder cells (not creating barriers).

A unit test has been created for the new class. Apart from that, the feature has not been tested yet.

I am opening this for discussion, but do not merge yet (documenting the new class).
Remark: I personally prefer to write that as
```C++
const int c = ii + dims_[0]*(jj + dims_[1]*kk)
```
mostly because it's shorter and saves one arithmetic operation.  In this case I might even consider declaring `c` in the outer loop (`for (int kk = 0, c = 0; /* ... */)`) and incrementing it in the inner loop (`for (/* ... */; ++ii, ++c)`) to highlight its unit stride nature but that's possibly too magic.