Contributors isn't always present

Change-Id: I80cd8ac7960377a236177c5829f95f476dd40903
Redirect more logging through new log framework.

Remove all remaining uses of `console`.  Made a couple of modules
fit the standard "module.exports is a constructor" pattern, which
let us factor out redundant parameters from method calls (and
efficiently share loggers).

Change-Id: Ib959b5d648bba87b65c4fe71c607d57e545bbeb7
Easy-to-read filenames in the bundle when debugging.

Change-Id: I093c5bb404d65a083c2f0c804acca36076521546
Don't crash if a referenced image was deleted or otherwise missing.

Change-Id: I6cea40912b03162f47f4c71d4765be907011399b
Increase retries of truncated downloads from 3 to 5.

Change-Id: I84fa60aa608821d8404be3432a1ca861a4f4809d
Merge "Redirect more logging through new log framework."
Merge "Easy-to-read filenames in the bundle when debugging."
Merge "Don't crash if a referenced image was deleted or otherwise missing."
Merge "Increase retries of truncated downloads from 3 to 5."
Save details of title redirects followed.

This is used by the zimwriter backend, so that redirects in relative links
work correctly.

Change-Id: I48a4d8209cadbc920bcbc060878a1f2d727546c3
Bug 68929: Use correct 'finish' event instead of 'close'

See http://nodejs.org/api/stream.html#stream_event_finish. This
avoids the image truncation issue, which apparently caused crashes later on.

Change-Id: I53242596eea4a8c7cf69fd6aa52c2448466bda8c