Start on Date classes

NOTE: This pull request is NOT ready to be merged. I'm just looking for feedback on how to proceed at this point.

Would you prefer one big squashed commit? Lots of small commits in a branch? A pull request each step of the way?

How do you feel about the nested classes (like Date::Interval) -- I'm really liking them.

Any and all feedback appreciated. I've been sitting on this for a while, and would like to resurrect it to contribute it.
You can try this:

```ruby
struct Date
  # Create a date with the given year/month/day in the given calendar system.
  def initialize(year : Int, month : Int, day : Int, @calendar = Date::Calendar.default : Date::Calendar)
    @jdn = @calendar.ymd_to_jdn(year, month, day)
  end

  def self.new(year : Int, month : Int, day : Int, calendar : Class)
    new(year, month, day, calendar.new)
  end
```

We use this pattern extensively in our code. That way you have fewer real initializers and some "new" methods are just convenience methods.

By the way, I'm not sure it's very useful to pass a Class as the calendar parameter. What if your calendar class is configurable? I think it's always better to pass instances instead of classes.