Add more helpful error message for `change`.

When change was called with a single argument and no block, the
message to be sent to the receiver defaulted to nil, causing an
unclear failure message.

Fixes #584.
Given that this isn't a `failure_message` but is instead a raised exception, I think the "expected result to have changed" bit is unnecessary and potentially confusing.  What do you think about this wording instead?

``` ruby
raise ArgumentError,
  "`change` requires either an object and message (`change(obj, :msg)`) or a block (`change { }`). " \
  "You passed an object but no message."
```