Added tests for customHeaders.

http://code.google.com/p/phantomjs/issues/detail?id=77.
Improve PhantomJS description.

First cut at a more modernized version of the README.

http://code.google.com/p/phantomjs/issues/detail?id=419
Improve PhantomJS README with various use cases.

http://code.google.com/p/phantomjs/issues/detail?id=419
Improve PhantomJS README, mention well-known related projects.

Also minor editing everywhere else.

http://code.google.com/p/phantomjs/issues/detail?id=419
Improve PhantomJS README, fix minor editing issue.

http://code.google.com/p/phantomjs/issues/detail?id=419
Squashed commit of the following:

commit c373ac4d17814588f4e3344f634ec469e56c0303
Author: Danny Wang <wangyang0123@gmail.com>
Date:   Tue Apr 10 12:38:13 2012 +0800

    moved i and l delarations to the top of page.evaluate()

commit bf24d4d1ecdb9e06c7bf461e87c222b10b74bc9d
Author: Danny Wang <wangyang0123@gmail.com>
Date:   Tue Apr 10 08:54:55 2012 +0800

    fixed defects in evaluate() pointed out by detro

commit 0bb8cff7803b70fe60fd761b1b748b5510705ee0
Author: Danny Wang <wangyang0123@gmail.com>
Date:   Fri Apr 6 19:21:47 2012 +0800

    added passing variables to function for page.evaluate

    http://code.google.com/p/phantomjs/issues/detail?id=132
Moved to gh-pages branch.

http://code.google.com/p/phantomjs/issues/detail?id=490
Update CoffeeScript compiler to version 1.3.1.

http://code.google.com/p/phantomjs/issues/detail?id=496
Fix crash on close due to an uninitialized pointer in QEventDispatcherQPAPrivate.

ISSUE: 497 (http://code.google.com/p/phantomjs/issues/detail?id=497)
Make it possible to print pages with user-defined headers/footers.

Usage:

page.paperSize = {
  margin: "1cm",
  header: {
    height: "1cm",
    contents: phantom.callback(function(pageNum, numPages) {
      return "<h1>" + pageNum + " / " + numPages + "</h1>";
    })
  },
  footer: {
    height: "0.5cm",
    contents: phantom.callback(function(pageNum, numPages) {
      return "<h2>" + pageNum + " / " + numPages + "</h1>";
    })
  }
};

Note: The contents can return arbitrary HTML but since we cannot
re-layout the whole website for every page, the header/footers
must have the static height defined in the height property.

Note: The new example printheaderfooter.js shows the usage. It
also shows how one could delegate the above to a JavaScript
function on the loaded website, which allows one to print pages
and let the actually printed page decide how the header/footer
should look like.

Note: The page-counter can be reset by adding the class "phantomjs_reset_pagination"
to HTML block-elements that should reset the counter.

ISSUE: 410 (http://code.google.com/p/phantomjs/issues/detail?id=410)
Improve README.md regarding the contributors.

http://code.google.com/p/phantomjs/issues/detail?id=419
Build system: do not assume 4 parallel jobs on Linux.

Try to grab the number of CPU cores from /proc/cpuinfo and use it as
the number of parallel make jobs (limit to 8 as a safety measure).

http://code.google.com/p/phantomjs/issues/detail?id=454
Fixed minor typo in README.md.

Thanks to Alessandro for spotting it.
Reuse number of jobs configured in MAKEFLAGS env var if available

Especially on machines that are connected to a compile farm, the
MAKEFLAGS env var is usually set to configure the default number
of jobs that should be used. This way, one can just call the
PhantomJS build script without passing the number of jobs every
time.

ISSUE: 503 (http://code.google.com/p/phantomjs/issues/detail?id=503)
Properly pass --qt-config value from build.sh to src/qt/preconfig.sh.

This way one can properly cross-compile PhantomJS for different
platforms e.g. by passing --qt-config '-platform ...' to build.sh.

ISSUE: 507 (http://code.google.com/p/phantomjs/issues/detail?id=507)