Full set of operator & identifier characters and comma-separated type definitions

All allowed operator and identifier characters are now supported as specified in the Haskell 2010 language report. (The patterns used to match these are somewhat duplicated, but future updates to language grammars may make this nicer.) The pattern does not check for reserved operators/identifiers, however.

Updated the pattern for comments so that operators beginning with `--` are matched properly. Also updated highlighting to allow comma-separated type definitions, as in `foo, bar :: Baz -> Quux`