Always use preincrement operator

Especially when these functions are being called hundreds of thousands
of times during a parse, preincrementing absolutely is a noticeable
performance boost.
Save an isEnd() call for each comes() call

We can get this information from the peek() return.
Save another isEnd() call in peek().

We already do a boundary check later in the method (after determining
the peek size).
Unused variable
Optimize comes() behavior

Only very rarely do we care about case sensitivity.  Most of the time,
we are dealing with symbols.  This saves on a ton of strtolower() calls.

Also can save on a more expensive mb_strlen() call if we know we are
dealing with symbols (for any practical charset).
Whoops - got this logic backwards
Another 7-8% of performance improvement by caching peek() data

Cache the common case of a single byte of peek data.
Copy/paste error; use === instead of ==
Save a bunch of is_string() calls by ensuring proper input to peek()
Optimize consumeUntil()
Upstream uses tabs instead of spaces
No need to continually generate this static data
Replace preg_match with a straight integer comparison
unnecessary assignment
Optimize identifierIs()

No reason for this method to be static
Optimize for the most-expected case - a non-prefixed identifier.
More efficient sizeUnits determination
Merge pull request #69 from slusarz/performance_take2

Performance improvements by caching some invariants