Add support for `flatten` and `background`


#### flatten()

Flatten transparent images before processing. Defaults background color to black. Use `background` to set the background color.

#### background(color) or background(r, g, b)

Set the background color when flattening transparent images using `flatten`. Pass any valid CSS color as `color` or numbers in the range of `[0, 255]` for `r`, `g`, and `b`.

Consider using null_ptr if this is C++11