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
Update .gitignore for Qt 5.3.

 * Ignore src/phantomjs_plugin_import.cpp, which is now created during
   the build.
 * Add leading slashes to a bunch of files that should not be ignored if
   they crop up in subdirectories.
Better Qt version check.

 * Allow any patchlevel of Qt 5.3.x.
 * Do it in the master .pro file instead of main.cpp; this makes the build
   fail immediately rather than after compiling a bunch of stuff.
Add capability to build PhantomJS against system Qt/Webkit.

Invoking build.sh with --system-qtwebkit will skip the build of Qt and
QtWebkit and use the qmake in $PATH to build PhantomJS proper.

This doesn't actually *work* at the moment because the bundled
copy of Webkit has patches not yet merged upstream, but it's still
useful to have for testing purposes.
Rationalize handshake between build.sh and preconfig.sh.

 * build.sh now handles building qt and qtwebkit.
 * preconfig.sh is now only responsible for accumulating arguments
   to pass to qt's configure script.
 * preconfig.sh doesn't have command line arguments of its own;
   anything on its command line will be passed directly to qt's
   configure script.
 * first pass of adjustments to the qt configure parameters
   to try to get a more static build - unfortunately, system
   sqlite, libz, libpng, and libexpat are still getting pulled
   in somehow (mostly via fontconfig, I think).
Add option to build against system qtbase but bundled qtwebkit.

As with the system-qtwebkit option, this does not actually work at this
point, but it enables experimentation toward getting it to work.
Correct SQLITE3SRCDIR setting.
Add --system-qtdeps build mode.

In this mode, system-provided libraries will be used for all of
Qt's dependencies, but Qt and QtWebkit themselves are still the
bundled copies.  This mode actually works.

Now that this mode exists, disable fontconfig in the "everything
bundled" mode, because it drags in the system freetype and several
other system libraries.  (There is no bundled fontconfig.)
80-column compliance for build.sh messages.