matchers: support custom matchers.

* specl/matchers.lua (Matcher): matcher object factory.
(matchers): Add metatable to verify assignments are objects
from the Matcher factory.
(matchers.equal, matchers.be, matchers.error, matchers.match)
(matchers.contain): Rewrite with the API.
(expect): Adjust calling convention accordingly.
* specl/shell.lua: Rewrite shell matchers with the new API.
* specs/spec_helper.lua (matchers.instantiate_a): Likewise.
* docs/specl.md (Custom Matchers): New section. Document custom
matchers API.
* NEWS: Update.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>