Move unchecked operation in simpler methods
Reduce the number of DateFormat being created

Also stop relying on a String for the UTC Timezone
Document the call to generator.writeObject without codecs
Increase the logs from warn to error when the loglevel can't be parsed
Back to String based timezones (java 8 only)
Use generics when possible
Replace hacky test with mocks