use `isoformat()` in jsonutil

allows preservation of timezone info.

Timezone info is still ignored in the extract-dates part, for now.
add IPython.utils.tz

Basic support for tz-aware UTC methods on date time objects.

The raw `utcfoo` methods still produce naïve objects,
so they are wrapped in a simple zero-offset tz-aware object.

This allows jsonutil to publish the timezone info,
eliminating the ambiguity of naïve timestamps (Firefox assumes local time, WebKit UTC).
add timezone info to `last_modified` in notebook managers

now Firefox won't get confused, turning utc timestamps into local times.

closes #3396
allow just the trailing Z for timezone
tweak regexp handling of tzinfo

allows for excluding the 'Z' from the timezone info
test jsonutil handling of dates
Merge pull request #3525 from minrk/utc

Fix basic timezone info

minor tweaks to jsonutil, to include timezone info if available
add IPython.utils.tz, which just has basic info for making utcnow(), etc. include tzinfo in the datetime object
use this tzinfo in the last_modified keys in notebook managers, which fixes Firefox's timezone offset for checkpoints