Add support for conditional saving model.

Concurrent nodes of an application attempting to update the same record might result in data corruption/loss. To help with this scenario, this PR adds an optional `conditions` parameter on `Model.Save`. When the conditions are not met, updated record count will be `0` letting the application know the failure.
You [shouldn't use mutable objects as default parameters](http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments).