make things a little more proper
reformatting, moved Cell constructor
pGet
explicit "nothing"
removed requireAll

functionCallPropagator now takes a "strict" argument which doesn't invoke the
propagator's toDo unless no inputs are "nothing"
stub for floating point equivalence

The official implementation considers two floating point numbers equivalent if
there is only a small difference between them. I haven't come across any
problems without this check, but I'm putting this check here so I can uncomment
it later if problems arise.
contradiction
link to propagators programming guide
flexible merge() and equivalent()