Implement full ISO8601 Date support

- Decoding will now always take UTC offset into account (previously
it was ignored) and allows timestamps without colons.
- The date encoder gained several config options:
  a) Using hyphens between date fields (default: off)
  b) Using colons between time fields (default: on)
  c) Encoding to UTC instead of local time (default: local)
  d) Appending UTC offset to local time (default: off)
  e) Appending milliseconds (default: off)
- Default encoder config is currently set to provide 100%
  compatibility with the previous implementation
- The dateFormatter Singleton is exposed as xmlrpc.dateFormatter,
  to allow for config changes