Findopm-parser.cmake: Fix it up, next try

thanks to Arne Morten Kvarving, Bård Skaflestad and Roland Kaufmann
for the discussion.
add the boost::regex library as a prerequisite

this is required for regex-matching keywords. Once GCC 4.9 is the
minimum compiler version to be supported, this can be dropped in favor
of std::regex ...
Merge pull request #162 from andlaus/sync_Findopm-parser.cmake

Sync findopm parser.cmake
Fix phase property references

Methods 'computeRelperm()' and 'computePressures()' *always* return
a three-element vector of phase properties.  We must therefore
translate to canonical phase indices before indexing into the
results.
variableState: Don't reference non-existing variable

The "xvar" exists only if Gas is active.  Therefore, we cannot
extract that variable from "vars" unless we know that Gas is an
active phase.  Failing to do so would wrongfully increment 'nextvar'
whence the final BHP variable would be an out-of-bounds access.
variableState: Defer r{s,v}Sat calculation

Quantities rsSat and rvSat are not needed unless we have an active
Gas phase.  Don't calculate them until we know that they are
actually needed.
variableState: Use pre-computed list of "all cells"

Class FullyImplicitBlackoilSolver<Grid> already features a list of
"all" cells, built at object construction time.  There's no need to
re-compute that list on every call to variableState() (when Gas is
active).
variableState: Don't form objects when references suffice

There's no need to form new objects, especially for the 'xvar', when
there are existing objects to which read-only references can be
bound.
assemble: Fix out-of-bounds indexing

The 'material_balance_eq' is indexed by active, not canonical, phase
indices.  Replace 'Oil' and 'Gas' with the appropriate 'phase_pos'
values.