Stop using -[UIColor colorWithHexString:]

Replace `-[UIColor colorWithHexString:]` calls with `-[UIColor UIColorFromHex:]`.

The latter should be much faster and errorproof as it doesn't need to parse strings.

Fixes #2958