Remove unnecessary TestContext.metadata getter
Moved custom matchers to separate module

This makes the spec files easier to read as there is less noise before the
first specs appear in the file.

It also helps identifying and reducing duplicate custom matchers
Rewrote most test to use build in matchers

Reduces the amount of custom code necessary in the spec code
Rewrote MetaDataSpecs to use new matchers
Added obsolete attribute to old-style matchers
Renamed matcher constructors

The function 'createNewMatcher' did not reflect what it did, only that it
was newer than the older.

The newer function has become the default, and the older functions have
become 'createBoolMatcher'