Better connect timeout handling

* Fork the node HTTP agent implementation and implement our own connect timeout
  in there. This avoids starting the timeout when the request is still in the
  agent queue.

* Don't use our custom request fork any more

* console.log the request end for now, as the request start is still
  console.log'ed too

* Increase API parallelism and template expansion timeouts slightly. Complex
  templates (for example in enwiktionary:water) can take longer and the
  connection timeout catches connection failures, so a longer timeout here
  should not slow down the processing of most requests.

* Increase the number of retries slightly from 5 to 8. Should absorb transient
  API failures combined with connect timeout handling better.

* Improve error logging for API request failures

TODO: Contribute the connect timout handling back into the node HTTP Agent
class

Change-Id: I4442f65171eddf0ff418ecc0b4ebbe3dfe041c94
Remove some this.title uses in APIRequest logging

Change-Id: Ifa89fe7dd137914578ccdbe8c8f67bb6d07e083d
Merge "Better connect timeout handling"
Merge "Remove some this.title uses in APIRequest logging"