bugfix: incorrect nstates range checks in nfai_is_state_marked/mark_state

Found with blackbox testing (running on an empty pattern triggers it).
bugfix: skip checks in nfai_assert_no_captures if we have no captures

Found with blackbox testing (because the blackbox test code currently
doesn't request capture data).
bugfix: fix matching against an empty string in nfa_exec_match_string

Previously for an empty string it would read past the end of the array.

Found with blackbox testing.
bugfix: fix build with NFA_TRACE_MATCH enabled
add a very simple blackbox test program
add a set of blackbox tests (very incomplete)
gitignore the blackbox binary
blackbox: free the final Nfa object
blackbox: print summary stats and don't print every PASS
add some more test cases
blackbox: extend blackbox tester so it can verify expected errors
blackbox: add a couple of regex syntax error test cases