ColorCodes: simplify and comment a bit.

- Simplify logic and increase explanation to make it easier
  for the casual reader.
- Remove the undocumented, untested and not-clearly-working
  "percentage" support.
- Replace `eval` with `try`, as is my wont.

Addresses #620.
I think there's probably no way of doing that; imo one tiny bit of inline style (`background-color: $hex`) is acceptable; it's only when it gets like this one is that I'm uncomfortable. That said, what you have here is no worse than what's already there!

Out of interest, what's the very-rough ETA on templates etc?