that should actually be ">=", RubyTime NSec range is [0, 999 999]
start using Joda's DateTime in lib/date.rb

* Tests are unaffected by this change.
* Zone offset and Gregorian cutover are computed from the DateTime.
* They are still copied in instances variables for ease of compatibility with current code.
* @ajd need to be preserved for now as DateTime only has millisecond precision,
  date.rb has arbitrary (although mentioned not expected > ns) (via Rational).
* Joda methods are used for year,week,day,hour,min and second
  (but not fractions since it might be imprecise).
use RubyDateFormat to format Date, yeah!
add formatting letters in javadoc to RubyDateFormat formats
add missing format %g (short weekyear) to RubyDateFormat
fix RubyDateFormat %c, blank-padded day, not zero-padded
fix RubyDateFormat FORMAT_CENTURY: use getYear() so it does not depend on Chronology

* In ISOChronology, it is fine, but in GJChronology, it's century + 1.
* Still a problem for the year right now with GJChronology (but no test!)
RubyDateFormat: handle ignored POSIX modifiers as MRI
handle extra date formats in RubyDateFormat
raise an ArgumentError when millis is a Bignum as Joda cannot support such "times"

* that is earlier than 292 275 054 BC or later than 292 278 993 AD ...
fix logic for Date#year: should add 1 only during JulianChronology (before @sg)
Date#rfc3339 is now defined as strftime('%FT%T%:z')
%v in Time is %e-%^b-%Y and is %e-%b-%Y for Date/DateTime
handle %L as a special case of %N and fix 1.8/1.9 conditions
separate millis and nsec nicely with setNSec() only ms to ns

* I so wish millis of DateTime was always 0 and nsec be nanoseconds
do not use DateTimeZone.forOffsetHoursMinutes() since it can be problematic in non-latest joda-time

* also, Ruby handles division of a negative in a way not conforming to this usage
remove all unused code for Date#strftime. Best commit ever!
handle Astronomical year numbering within RubyDateFormat too

* from logic in date.rb (which is way simpler)
* tests coming in RubySpec
Date#initialize: do not compute @of and @sg, much faster to save them directly for now

ruby 2.0.0p247
Date.new 924.9 ns/i ± 13.60 ( 1.5%) <=>   1081082 ips

jruby: before
Date.new 20.72 µs/i ± 0.337 ( 1.6%) <=>     48260 ips

jruby: after
Date.new 10.61 µs/i ± 0.102 ( 1.0%) <=>     94207 ips

jruby: without creation of the DateTime
Date.new 7.483 µs/i ± 0.212 ( 2.8%) <=>    133643 ips

jruby: without computation of millis from ajd (through Rationals)
Date.new 4.980 µs/i ± 0.068 ( 1.4%) <=>    200788 ips

* ideal scenario is creating the DateTime from civil parameters directly (year, month, day)
  and never rely on @ajd, but it means rewriting many methods of Date
Optimize Date._iso8601

* Passes test__iso8601

* ruby 2.0.0p247
  Date._iso8601 9.046 µs/i ± 0.053 ( 0.6%) <=>    110548 ips
* before
  Date._iso8601 72.35 µs/i ± 24.68 (34.1%) <=>     13821 ips
* after
  Date._iso8601 5.185 µs/i ± 0.065 ( 1.3%) <=>    192847 ips

* Date.iso8601 is twice faster, bottleneck seems now #complete_frags