NFA REPR serialize/deserialize.
Start !cursor_start refactor.

Currently it is the only thing in the NQP or Rakudo codebase that uses
Parrot's multiple return values feature. This splits it up into two
routines, one for things that really only want the cursor anyway (and
so this will be an efficiency win for them) and one for generated code
that wants all the things (which we can still do without allocating).
First batch of !cursor_start updates.