Performance take2

So a smaller, less ambitious performance try.  The combination of these provides about a 25% performance boost, at least according to xdebug data.

peek() is the deadly method that needs to be worked on further.  It consumes about 36% of runtime.  comes() is the next biggest performance hog, but it only consumes about 11%.