rename nfa_exec_ {init -> start}, {alloc -> init}

This makes the naming more consistent with the nfa_builder_ API
license -> licence (British English)
extract common allocator init code, and add nfa_exec_init_{pool,custom}
update todo list
Support custom allocation for the Nfa object itself

The interface for this is somewhat different. Since it's only a single
allocation, you don't give libnfa an allocator, you just ask it how much
memory it needs, and then give it a buffer.