Fix bug in matcher that made it too promiscuous

When attempting to match a character i of the needle against the
haystack, we need to restrict which characters [j1, ... jn] of the
haystack are eligible.

e.g. If i-1 matched against j1, j2 and j3, i cannot be allowed to match
at j1.
Fix scoreboard matrix not being properly reset

We depend on row m and column n being zeroed, which might not be the
case after a call to Matrix.reshape().
Optimisation: first test if needle is a subset of haystack

Significant speed ups with larger input sizes ( c. 80,000 files )
Clean up Vim/LuaJIT bridge somewhat