Case-insensitive string matching for MySQL and PG

The last mile for MySQL support. Also adds `Thredded.user_name_column` configuration variable.

---

On MySQL text columns are case-insensitive.
On PostgreSQL, they are case-sensitive by default.
I've changed this to `fail`, but as far as I know `raise` is just an alias. Is there some semantic difference I am not aware of?