writer should use code/iso8601 for date/time/datetime, not inspect

To resolve #43 and #62, encoding date, time, datetime as iso8601. This could use some optimization, and a much faster way is just to override inspect on Date, Time, DateTime (and ActiveSupport::TimeWithZone if exists) to return "(the class name).iso8601(#{iso8601.inspect})", but doing it the way it is done in this patch avoids inspect overrides, even if it is a little slower.