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`.
Thanks for your feedback :+1: Agreed, but this is the pattern the current implementation uses for all operations so I decided to stick with it for consistency. @lovell mentioned reworking the whole `g_object_unref` setup. What do you think, @lovell?