pickler: reset data between calls to flatten()

Reset the pickler between calls to flatten() so that references
to possibly unrelated objects are not kept around.

Add a `reset` argument so that callers can opt-out of this
behavior.  This is used by the built-in datetime handlers
since they encode using jsonpickle mid-stream.

Related-to: #1
Reported-by: Edmund Huber <edmund.pgh@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>