Support a validation context for update/update! methods.

This is a resurrection of #4026, which was closed by the author, @kennyj

From the original pull request:

> Currently, the update_attributes / update_attributes! method can't specify a validation context.
> This patch allow above methods to specify the context.

I've updated the PR to work with the latest rails master.