Improve error handling during bootstrap process

Refs #2986
-More thorough promise handling in bootstrap.js
-Catch rejected promises from the bootstrap module and force
 a Grunt failure instead of an erroneous success
-Adjust the bootstrap unit tests
`error`?  It's only needed for the `!templateExists` conditional.  All the other rejections that happen below it can use the `Error` object provided in their containing callbacks.