Simplify Env code by reusing QProcessEnvironment.

This gets rid of the custom parse code and slims down the API.

https://github.com/ariya/phantomjs/issues/12424
Stop early when QtBase or QtWebKit failed to compile.

Currently, the build script will continue to try to build PhantomJS
even when either QtBase or QtWebKit failed to compile. In such a
case, the script should return early and emit an error message.

https://github.com/ariya/phantomjs/issues/12433
Remove patches/ since they are for 1.x only.

https://github.com/ariya/phantomjs/issues/10448
Remove website/ directory.

The web site has been based on GitHub pages for 2.5 years already.
More tests for the arguments object.

https://github.com/ariya/phantomjs/issues/11845
https://github.com/ariya/phantomjs/issues/11558
https://github.com/ariya/phantomjs/issues/11746
https://github.com/ariya/phantomjs/issues/10315

https://github.com/ariya/phantomjs/issues/12439
preconfig.sh: don't require ICU on OSX

This isn't needed for the full build, only QtWebKit which has it's own ways of finding the system ICU.

https://github.com/ariya/phantomjs/issues/10448
Fix path handling when running the build process.

https://github.com/ariya/phantomjs/issues/12433
Launcher for ECMA-262 test suite (test262.ecmascript.org).

https://github.com/ariya/phantomjs/issues/12439
Fix rasterize example exit status on failure.

https://github.com/ariya/phantomjs/issues/11911
Use Array.prototype.slice in window.callPhantom.

window.callPhantom formerly used Array.prototype.splice for cloning
its arguments to the internal _phantom.call. This relied on
non-standard behaviour of the splice method when only a single
argument was passed to it (it requires 2 arguments).

The correct method for cloning the arguments array is to use
Array.prototype.slice, which accepts a single argument (index) and
returns a new array from the specified index.

https://github.com/ariya/phantomjs/issues/12306
Add ability to run tests selectively.

 * Anything on the command line after "run-tests.sh" will be understood
   as a regular expression (if there is more than one argument, they are
   concatenated, with spaces in between) and only the tests whose "full
   names" match that regexp will be run.  The full name of a test is the
   "describe" string plus a space plus the "it" string.  Note well that,
   unlike the test-runner output, there is no colon in there.

 * run-tests.sh and run-tests.js now correctly handle being invoked from
   an arbitrary directory; the cwd does not have to be the project root.

 * Shell portability fixes for run-tests.js.

 #12230 (Test suite improvements).
Import Jasmine 1.3.1.

 #12230 (Test suite improvements).
Fix jasmine.ConsoleReporter.specFailureDetails.

The new Jasmine includes a version of this formerly external add-on, but it
is buggy and doesn't print details of failing tests.

 #12230 (Test suite improvements).
Do not use github.com in tests.

Two tests were spuriously failing because they tried to load pages on
`github.com` that were no longer structured as expected.  Use a local
webserver instead.

 #12230 (Test suite improvements).
Add a -v/--verbose option to run-tests.{sh,js}.

The newer ConsoleReporter is very quiet by default, which is nice, but
this provides a way to get something more like the older one-line-per-test
output.

 #12230 (Test suite improvements).
Eliminate console spam during normal test execution.

Three tests were (potentially) dumping text to console.log during the
run, which they should never do. (This becomes much more obvious with
the new quieter ConsoleReporter.) One of those tests was not actually
testing what it was supposed to test.

 #12230 (Test suite improvements).