Refine implementation of WCONHIST

This change-set refactors the implementation of keyword `WCONHIST` to support the implied semantics of the control mode.  In particular, a well controlled by `WCONHIST` always supports the control modes
```
ORAT, WRAT, GRAT, LRAT, RESV
```
because the target values of the latter two control modes are derived from (combinations of) the former three.

The "diff" is, regrettably, close to unreadable/useless so I recommend manually/visually comparing the code in `Schedule::handleWCONProducer()` [before] (https://github.com/OPM/opm-parser/blob/master/opm/parser/eclipse/EclipseState/Schedule/Schedule.cpp) and [after] (https://github.com/bska/opm-parser/blob/2fa27361aac33a77687a991ce7724021c8597a13/opm/parser/eclipse/EclipseState/Schedule/Schedule.cpp) the change.  In essence, the change-set splits concerns particular to `WCONHIST` from those that are particular to `WCONPROD` and handles the common items separate still.  Additional details in the log of commit 3889e92.

Commit 2fa2736 is controversial, and possibly wrong.  I disabled the "non-existence" check of `GRAT` control mode of well `W_2` in step "8" because as far as I could determine from reading [the input data] ( https://github.com/OPM/opm-parser/blob/master/testdata/integration_tests/SCHEDULE/SCHEDULE_WELLS2) that would be a `WCONHIST` record and, as stated above, `WCONHIST` records *always* support `GRAT`.  I'd appreciate some discussion on this point.