Functions for easy coloring

Adds a family of functions for mapping values to colors.

 |Continuous values|Categorical values
---|---|---
Continuous colors|`colorNumeric`|N/A
Discrete colors|`colorBin` and `colorQuantile`|`colorFactor`

This makes it possible to describe most color mappings in a single function call.

Hat tip to @hadley, who has forgotten more than I will ever know about scaling.

I would love some eyes on this now but there are some open questions.

- [ ] What happens when NA is fed in? `colorNumeric(...)(NA)` Should that return NA, or (optionally) you provide `colorNumeric` with an NA color?
- [ ] What happens for `colorNumeric`, `colorBin`, and `colorQuantile` if a value is fed in that is too low/too high for the domain? Snap to the nearest valid value, with a warning? Return NA? Provide an option?
- [ ] What happens for `colorFactor` when a value is fed in that isn't one of the expected levels? Return NA? Return an NA color?
- [ ] `cut` takes `include.lowest` and `right` options, I was thinking about exposing them on `colorBin` but reversing the defaults.
Turn this into `print.palette` by classing the result of `toPaletteFunc()`.  It'll remove a lot of duplication form the examples