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
    }
],
Add automatically generated files