change commit behaviour

Commit now creates a 'snapshot' and sends that to the onCommit handler
the committed model instance can still be used.