Fix typo in the README
Emit 'pageError' event for failed URLs
Use colored output in the standalone utility
Ensure that no new messages are processed after ws.close()

Specifically this ensures to ignore 'Network' messages that arrive after the
'Page.loadEventFired' event of the last URL in the list.

For what concerns the URLs before the last one, there are checks in
Page.processMessage() that skip responses ('Network.dataReceived',
'Network.responseReceived', 'Network.loadingFinished' and
'Network.loadingFailed') without a matching request. Also, requests without a
matching response get skipped too during HAR generation.
Fix Page.originalRequestId detection by checking URL too

This copes with overlapping page requests in a multi-URL scenario.
Treat original pending requests as errors too
Fix proxy timing interpretation

'proxyStart' and 'proxyEnd' are respectly described as 'Started resolving proxy'
and 'Finished resolving proxy' in the manual, and since the HAR spec doesn't
take into account proxy timing, it's better move that value from 'connect' to
'dns'.
Use -1 in the HAR object if timings don't apply

HAR spec 1.2: "An exporting tool can omit the blocked, dns, connect and ssl,
timings on every request if it is unable to provide them. Tools that can provide
these timings can set their values to -1 if they don’t apply.An exporting tool
can omit the blocked, dns, connect and ssl, timings on every request if it is
unable to provide them. Tools that can provide these timings can set their
values to -1 if they don’t apply."
Fix HAR 'timings' object generation

Notes:

1. The computation of the 'blocked' field isn't reliable, skipped by now;

2. In the 'ResourceTiming' object, received along with the
   'Network.responseReceived' message, DNS and connection time ranges may
   overlap, this breaks a few assumptions in the prior timing model;