assign_attributes should return if arguments are blank

If you are passed an empty hash, then `assign_attributes` doesn't need to do any work and can just return early. This should fix the failing Agile Web Development tests that @rubys mentioned here: https://github.com/rails/rails/pull/9860#issuecomment-25023457.

For example, if `assign_attributes({})` is called, we can just return prematurely because it is obvious that no attributes need to be updated.