Promise kitchen-sink with topdown decomposition

This example takes a top-down design approach, adding some readability to the
original promises example at the expense of a slightly larger file size.

More info about the method as well as some benefits of using bluebird and 
promises can be found in the example's README.md