Added new parser - LookaheadParser

LookaheadParser matches everything up until any one of the provided
$lookaheadStrings is encountered. So this works like a negative
lookahead regular expression, but is less flexible.
Modified ParseFailureException to store the position at which parsing failed