Add `background` and `flatten` APIs

Original discussion #91. Created new pull request against `lovell:alpha` as GitHub doesn’t let one change the target branch.

## Documentation

#### background(color) or background(r, g, b)

Set background color for operations such as `flatten`. Pass any valid CSS color as `color` string, e.g. `'#00ff00'`, `'hsl(120,100%,50%)'`, etc., or as numbers in the range of `[0, 255]` for `r`, `g`, and `b`. Defaults color to black.

#### flatten()

Flatten transparent images onto background with a color set using `background`.
I think you're leaking `flattened` here - should free it before return.