Friendlier `assert_field_saved` (and inverse) test helpers

This makes the `assert_field_saved` and it's inverse friendlier
test helpers. This involved a few changes:

* If a record hasn't been saved, don't error. Instead default
  the saved attributes to an empty hash.
* When using the helpers without specifying a specific value,
  ensure it was saved with a non-nil value. Otherwise this can
  "hide" problems. If you want to make sure a value was unset,
  then pass `nil` explicitly.

These tweaks make the test helpers friendlier and behave as would
typically be expected.

In addition to this, this adds tests for the helpers to make sure
bugs don't end up in these helpers.

This is related to #24.