Added support for natural keys

Also made committing a little more robust by actually using the
primaryKey attribute
Fixed an issue after committing a new record

For some reason, it sends back patches and was fucking everything up.
This handles those cases.