Switch JSONEncoder to use ISO dates.

  Move handling to parse them into a util file. In addition, clean
  up the validation on the incoming objects, and fix the tz handling.

  Close #110
only comment is that perhaps it'd be clearer to use isinstance(obj, (datetime.date, datetime.datetime)) instead of the elif

it looks like we only use it in scrape.base.BaseImporter at the moment so this should be fine