Clean up and fix test from cfcfff.
Make `Q.promise` throw early if given a non-function.