Fix highlight on unnamed class, struct and enum

Problem:

    In C++, unnamed derived class and struct can be defined using ':'.
    enum also can be defined with specific underlying type using ':'.
    They are highlighted as labels wrongly.

```
struct base{};

int main()
{
    //
    // Below 'enum', 'struct' and 'class' are highlighted as label
    //

    // Specify enum's underlying type
    enum : int {} aaa;

    // unnamed derived struct
    struct : base {} bbb;

    // unnamed derived class
    class : base {} ccc;

    return 0;
}
```

Solution:

    Check that labels don't match to them.
Merge pull request #22 from rhysd/fix/unamed-class-and-enum

Fix highlight on unnamed class, struct and enum