fix .validate() signature back

This changes the .validate() signature back to accepting an attributes obejct as the first parameter.  This is necessary for validation to correctly catch changes to model attributes and prevent them from being set if they fail validation
Add a "forceUpdate" flag

The "forceUpdate" flag is meant to facilitate working with Views.  It allows a UI to validate changes on a model but still allow the changes to take place, even if validation fails.
Update to use the forceUpdate flag