Get validates_uniqueness_of to work better with `NOT NULL` columns

Instead of having to persist the subject, like so:

  describe 'validations' do
    subject { build(:model) }
    it { validates_presence_of :required_attr }
    context "persisted" do
      # Needs to be persisted to prevent NOT NULL db error
      subject { create(:model) }
      it { validates_uniqueness_of :unique_attr }
    end
  end

You can now just write:

  describe 'validations' do
    subject { build(:model) }
    it { validates_presence_of :required_attr }
    it { validates_uniqueness_of :unique_attr }
  end

When required the matcher saves the record to the database.
Updated docs for `ValidateUniquenessOfMatcher` [ci skip]
Tweak validate_uniqueness_of docs [ci skip]