Add preconditions failures to orset / map

Update all modules `update/3` to return `{ok, CRDT} | {error, Fail}`

After some small changes all tests still pass, this throws serious
doubt in the use of the EQC tests for Map/Sets and I'll be giving
them a stern look from tomorrow morning onwards.