Allow multiple regex per token name by using arrays

In most languages there are multiple different ways of declaring the
same constructs (e.g. comments, strings, ...) and sometimes it is
difficult or unpractical to match all of them with one single regular
expression. This patch adds the possibility to use an array of pattern
objects.

For example there is a minor bug in the current definition of the
`clike` language, that could be solved with this patch:

The character immediately in front of a single line comment is
highlighted as a comment as well.

something// something

This is because both definitions for single and multiline comments
have to be matched with a single regex and the `lookbehind` parameter
can only be applied to the first captured string.

With this patch one could split the two definitions up and use
`lookbehind` for both, thereby eliminating the bug.

'comment': [
    {
        pattern: /(^|[^\\])\/\*[\w\W]*?\*\//g,
        lookbehind: true
    },
    {
        pattern: /(^|[^\\:])\/\/.*?(\r?\n|$)/g,
        lookbehind: true
    }
],
Allow the definition of additional CSS classes for token names

This patch adds the ability to use additional classes for token names.
This can be useful, if only a slight modification or emphasis of a
previous style is necessary. For example the hashbang of a script, is
usually styled as a comment, but to let it stand out a bit more one
could add a general class `token-bold`:

'comment token-bold': {
	pattern: /(^\s*)#!\s*\/bin\/(ba)?sh/g,
	lookbehind: true
}

The individual classes are simply separated by whitespace.
Add automatically generated files