Enable promises.

This request adds in support for optional Promises.  This is super useful for control flow and will improve our install process and build process in future pulls.