Real read/write locks using Unix.lockf

Ref: #1212 (I still got a Pervasives.exit 64 from Dose: algo/depsolver.ml: the
package encoding global constraints can't be in conflict when trying to
_display_ the conflicts with internal solver) Ref: #457 (should be safe to
take a read lock until solution application, then a write lock. If this is
still needed ; breaks current `make tests`) Closes #434 completely, as there
should not ever be a need to reset locks anymore.