Replace when with bluebird

Currently has two commits, one for the bulk of the tests conversion and one for the rest.  Will squash if/when this is ready.
Ditto on the change to the error handling here. Although there is no other code to throw an error, the inconsistency may cause confusion?