Reuse JSON connection and recover download errors

chanarch.py (ChanThread):
  - Add HTTP(S)Connection object (shared with other threads) for JSON
    downloads

  __init__():
    - Accept and store the JSON connection, if given

  update_info():
    - Use the supplied connection, if it exists
    - Catch and retry if ResponseNotReady or BadStatusLine is raised
      when downloading

chanarch.py (Downloader):
  download():
    - Catch and retry if ResponseNotReady or BadStatusLine is raised
      when downloading

chanarch.py (__main__):
  - Create a connection for downloading 4chan JSONs and pass it to
    ChanThreads
  - Sleep for a bit between downloads to avoid stressing the servers