json encoder fixed against timedelta, datetime and decimal conversions