Remove unneeded `initialize` definitions/args.
Unwrap unnecessary Array#include?.

- The old version created an extra object (the array).
- It also involved more message sends:
  - Array#include?
  - `==` to each element

For a static list of 2 items, it will perform better
to just compare each item individually.
Remove support for ArgumentListMatcher block.

This feature was removed in #426, but this bit of
the implementation of that feature remained.
Switch arg matchers to use `===` rather than `==`.

* `==` should be symmetric; `a == b` and `b == a` should return the same
  value. This wasn't the case before.
* `===` need not be symmetric; it's designed for matching in case
  statements, which matches the semantics we want.
* `===` opens up new avenues of flexibility (e.g. lambdas can be
  passed on 1.9+ as an arg matcher since they implement `===`).
* This allows us to simplify our logic and remove some
  classes.
Make it clear what the public API in this file is.

- Add YARD docs to differentiate.
- Move the private stuff below the public stuff
  so the public stuff is more prominent.
Remove unused line.

This was causing a ruby warning:

rspec-mocks/spec/rspec/mocks/matchers/receive_message_chain_spec.rb:130: warning: assigned but unused variable - o
Add changelog entry.
Merge pull request #473 from rspec/fix-arg-matchers

Refactor arg matchers