Minor style refactoring in grammar_utils.py
Added "but" and "vs" as particle words.
to_title_case(): Improved regex for detecting a word.

The exact improvements are:

- All Unicode alphanumerics are recognized as word characters. Previously
  accented letters, etc. were considered punctuation, leading to disaster
  when applying ->title().
- Dashes and apostrophes are only considered part of a word if they occur
  inside it. Thus, words that are flanked by quotes or apostrophes are
  now capitalized correctly.
to_title_case(): Refactoring in preparation for some improvements
to_title_case(): Handle the case where "A" is an initial, not a particle

Example: "Name A. Surname" would have been titlecased to "Name a. Surname",
obviously incorrect. This is handled OK now.
to_title_case(): Try to preserve Scottish patronyms, e.g. McDonald
to_title_case(): Handle embedded parantheses and quotations
to_title_case(): Handle dashes and commas separating parts of a title
to_title_case(): Don't touch compound names like "Rimsky-Korsakov"