Don't crash on improper ~walk usage

InstantQueues, foreach/repeat, null NPCs, ... so many ways it can go
wrong!
Rework instant injections

They now manually fire instantly, rather than relying on the revolve
code to handle it. This will dodge issues related to if/else leveling.
Also, the algorithm for instant code was reworked to be less likely to
conflict with future injection code.