Protect ExpectationTarget under expectation
Make match public

Since ExpectationTarget is in another class, it's less elegant to make
it a friend of Matcher. It doesn't seem to harm if the match method is
public -- after all, everyone can use Matchers to match stuff.
Remove redundancy in naming ExpectationTarget

ExpectationTarget is already under namespace expectation, so no need to
prefix it with Expectation.