Customize subsecond digits when encoding DateWithTime

The subsecond fraction digits had been hardcoded to 3. This forced all timestamps to include the subsecond digits with no way to customize the value. While the subsecond format is part of the ISO8601 spec, it is not adhered to by all parsers (notably mobile clients). This adds the ability to customize the number of digits used, optionally setting them to 0 in order to eliminate the subsecond fraction entirely:

```ruby
# Disable subsecond fractions
ActiveSupport::JSON::Encoding.subsecond_fraction_digits = 0

# Restore the default
ActiveSupport::JSON::Encoding.subsecond_fraction_digits = nil
```

Without the ability to customize the value I have no choice but to monkey patch `ActiveSupport::TimeWithZone` to use `xmlschema`. Otherwise our iOS clients chokes on every timestamp.