Add support for lookahead

This patch adds support for the `lookahead` flag, which works exactly
like `lookbehind` only from the other side. When set to `true`, the last
capturing group in the regex pattern is discarded when matching this
token.

This feature can be extremely useful when matching encloseing tags like
script or style tags. Currently one has to work around the lack of a
`lookahead` flag, by using the `inside` option and repeating everything
from the layer above.

Using `lookahead` is much more natural and readable for example:

if (Prism.languages.markup) {
	Prism.languages.insertBefore('markup', 'tag', {
		'script': {
			pattern: /(<script[\w\W]*?>)[\w\W]*?(<\/script>)/ig,
			lookbehind: true,
			lookahead: true,
			inside: Prism.languages.javascript
		}
	});
}

There are lots of other places where this could be useful:

'function': {
	pattern: /[a-z0-9_]+(\()/ig,
	lookahead: true
},