[Runtime] Polish application browser test

1. Make test API extension running on UI thread. And let the client to return
the xwalk.app.test.notifyPass/Fail callback explicitly when it's ready.
2. Using Promise to provide a common asynchronous test driver. The JS can now
write code like below to test:
  function test1(resolve) { ... } // calls resolve() when test is done
  function test2(resolve) { ... } // calls resolve() when test is done
  var tests = [test1, test2];
  xwalk.app.test.runTests(tests);