matchers: make object comparison faster and more robust.

This fixes a failing spec in `Sexpr` on luajit, where a
comparing a 10000 element cons list previously triggered a
stack overflow:
* lib/specl/matchers.lua (objcmp): Rewrite to return immediately
when primitive types, or objects with __eq metamethods, determine
the arguments are equal.
Rearrange order of additional comparisons to handle fast
comparison of primitive types (or with __eq metamethods) on
table entries without recursing, and use tail call optimisation
when only a single table value needs to be checked to determine
equality.
* NEWS: Update.

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