Swift: treat all uppercase idents as types
Swift: match keyword earlier

By matching keywords/declarations/constants before functions and variable labels, we can avoid some weird edge cases (for example switching on a tuple being interpreted as function call) — without having a big list of exceptions in respective rule regexes.
Swift: require variable labels to be lowercase

This fixes `case .Foo:` and `class Foo: Bar` being interpreted as labels
Swift: revert to The Old Way Of Doing Things
Swift 1.1: @NSApplicationMain
Merge pull request #174 from radex/swift

More Swifty improvements