Added back overwrite option for save.

Default to true for save, false for create.
Added support for middleware.
Fixed errors in static Model.update and Model.delete.

For Model.update, it looked like it was attempting to return the
updated model but was failing to do so and always returning
undefined. I added the ALL_NEW returned values flag to the
DynamoDB call and use the Attributes property in the callback
instead of Item, and this makes it correctly return the model.

For Model.delete, the update option was not working correctly.
It would consistently throw an exception when specified,
whether the item existed or not. I made it so that if the
update option is specified, a ConditionalCheckFailedException
is thrown when the item does not exist (by adding an Expected
condition) and if the item does exist, the deleted model is
returned.
Merge pull request #9 from TeamPraxis/master

Overwrite Option, Middleware, and bug fix