Introduce prototypes using char* and size_t for rejit top level functions.

Currently rejit relies on the terminating '\0' character to indicate the eos.
Incoming commits will fix that to only rely on the string length.  This will
enable working directly on mmap-ed files, and  may spare creating a std::string
and memcpies.
Perform tests at multiple alignments to exercice more code paths.
Follow the ABI and store callee-saved registers below the frame pointer.

This allows GDB to correctly backtrace through the stack.
Start work to never access memory after the end of the string.

Rejit currently relies on the terminating '\0' of strings. Memory after '\0'
should never be accessed.  More than that mmap-ed files do not
end with '\0', so we want to be able to rely on the string length alone.
This is the first of a few commits to achieve this.
Start work for MultipleChar to not access memory from the eos.

Update MatchMultipleChar() for the general case and the single fast forward
visitor.
Update the FF standard visitors to not access memory from eos.
Update FF code for multiple mcs to not access memory from the eos.
Avoid accessing memory from eos in FF for single seol.