Change Operation to take care of setting Requests' success or error states, instead of leaving Proxies to do it. Operation relies on the proxy's resolution or rejection of its promise for this. Proxies now resolve their Promise with a ResultSet object instead of the Request object, and reject their Promise with an error object/string.

Also fix an issue with Model saving related models/collections, where its 'saveerror' event wouldn't be fired if a related model/collection failed to save/synchronize.

Clean up tests in ModelSpec as well to always use the ManualProxy for load/save/destroy tests, instead of a combination of a spied proxy and the ManualProxy.