Port more tests and fix passing date

Continue porting tests out of webpage-spec.

We don't have support for async, added `waitFor` to asserts.

While porting tests for `page.evaluate` realized that passing `Date` as argument is broken (and was in that state even before my previous change). The root cause is that `JSON.stringify(someDate)` returns string. So type information is lost. Fixed that in separate commit.

https://github.com/ariya/phantomjs/issues/12615
https://github.com/ariya/phantomjs/issues/12439