feat(Promise support): Support using Promises in async tests.

If a Promise is returned from a test the test result will depend on the
settled state of the returned Promise.

If the Promise fulfills the test will pass if the Promise rejects
the test will fail.

This will allow easy integration of ES7 async functions into Jasmine.