More Swifty improvements

Following up on the discussion in #172, I made capitalized identifiers highlight as `Keyword.Type`. Also fixed a few edge cases and simplified the code a little bit.

I tested the changes on some (quite complex) files from my Swift project and I'm quite happy with the result :)

Unless I broke something on the way that I didn't notice, I think we should be set for a while ;)

/cc @ole
Is it possible to "bail out" of a rule once it's matched and continue trying out the next ones? I think it would still be nice to try matching keywords before https://github.com/jneen/rouge/pull/174/files#diff-28092f733d3954d55220e1071f994377R99 — but I couldn't find another way to do it but to construct a regex out of the set…

… or should I just revert to the old way?