Allow multiple `registerMatchers` in one context.

The old implementation appeared to mimic that of `beforeEach` and
`afterEach`--it only allowed one per context. However, there is no need
for such a restriction when registering custom matchers. This commit
allows any number of matchers to be registered in a single context.

Other changes:

- Remove obsolete forward class declarations from KWExample header.
- Delete commented out code from KWMatcherFactory.
- Consolidate duplicated code in KWExample, KWContext in internal methods.
- Add missing variable name from block typedef (only used in
  `defineMatcher` macro).