Fixed case-insensitive highlighting issues and identified a possibly *major* performance problem

how this works:
* rather than throw an expensive regular expression at each chat message, we start by checking to see if the users name exists.
* then, by simple string manipulation we verify that the preceeding character before the alleged username is whitespace, the start of a line, or an '@' character.
* FINALLY, we verify the following character is a non-word character using a regular expression.
* then we cache the highlight status on the local `message` object, because for some reason, this function is called **every time a character is typed in the chatbox.** this seems like a hugh performance problem to me, need to see if there is a way to disable that or something