Split definitions required for revectoring from their use.

This is intended to make it easier to manage the revectoring code. Part
of the motivation is that there may be synchronization points other than
system calls, so it makes sense to split the places where the revectoring
functions are instantiated.
Group the system call definitions into their own file.