user_color_scheme_class with no current_user

This refactors the `user_color_scheme_class` to use a hash with a default.
This prevents problems with workers that don't have access to the
current_user.

Fixes issue #2758

The previous solution (commit 84e4cfc6bbfa7251dc8e2b88ca4c507b98cadc61) returned
a number, not a string.  I also added unit tests for it.