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`.
Brian's correct here - in this case the use of `vips_image_new` can sit inside the conditional block.

Our friend here is [leak.sh](https://github.com/lovell/sharp/blob/master/tests/leak.sh), a `valgrind` based memory leak checker that runs the unit tests - hopefully it would have picked up on this.

I'm happy to clean this up in the feature branch before merging to master.