Method that correctly capitalizes names. Accounts for prefixes & suffixes, apostrophes, name parts that shouldn't be capitalized, and other scenarios where using something like ucwords(strtolower($str))
doesn't work.
Eventually I'll move this into a formatter class of some sort.
Credit for the original method goes to Armand Niculescu.