Fix wrong auto-generated descriptions with falsey expected value

Currently this spec example:

    describe 'wrong auto-generated descriptions' do
      subject { nil }
      it { should be nil }
    end

generates the following description:

    $ rspec --format documentation test_spec.rb

    wrong auto-generated descriptions
      should equal
                   ^^^ Missing "nil"!

This is because BaseMatcher#description checks whether expected value is
set or not by checking if the value is truthy in conditional semantics.
However this does not work if the expected value is `false` or `nil`.

This change fixes the issue by checking whether ivar @expected is
defined or not and skip definition of @expected if the parameters to
BaseMatcher.new are omitted.