Rewrite the Ninja lexer to be top-down, enabling more optimisations
Rewrite the Ninja lexer to be top-down, enabling more optimisations

ndmitchell/shake,ndmitchell/shake,ndmitchell/shake,ndmitchell/shake,ndmitchell/shake,ndmitchell/shake