add an assert that the length arg for UTF8f is non-negative

If we dont we will just hit a different more confusing assert
later. In production builds we zero elen so the args is assumed
empty.
regcomp.c: fix fencepost error in vFAIL at end of pattern

If RExC_parse was after RExC_end we passed a negative length
into the UTF8f macro/format, which then triggered asserts.

As part of this we add a new diagnostic to show when a
(?(condition)...) construct has gone unterminated, and tests for
the unterminated case, thus testing that vFAIL works properly
at the end of the string at the same time.