be.equalTo specs uses shared examples and metadata

This significantly reduces the amount of concrete test code in the actual
specs, and provides reusable test for tests of other matcher types