215 - ignore initial value of out parameters, 220 - implicitly assign out parameters

Fixes #215.
Fixes #220 (well, the `out` parts; will spin the `ref` parts off into another issue).

As discussed in #220, pairing the `out` part of that issue with #215, as releasing #215 by itself would mean that #220 becomes a breaking change.

There are a few other YAGNI virtuals in the class too and one of them, `Applicator`, is being called in the constructor. I think we should de-virtualize all of them whilst we're here.