Remove combine, rename explode to spread and add append.

Promise#combine attempted to do too much in an attempt to work around
the behaviour of concat (which changes depending on whether the
arguments are arrays or values). Instead, provide Promise#append which
appends the value of any Promise (be it array or not) to a Promise of an
array.

Re-work and document the example code to show how these primitives can
be combined to good effect.
Add API documentation to README.