Convert QML CalendarModel to C++ QQuickCalendarModel.

This makes the model property private. The motivation behind this is:

1) We don't want to expose C++ classes in Qt Quick Controls.
2) Given 1), an alternative that allows users to use their own custom
   models for the Calendar involves:
   - Making the model property a var that accepts any type of model
     that provides a DateRole.
   - Having two functions in Calendar: indexAt(date) and dateAt(index),
     which any custom models have to implement if they use a different
     indexing system than QQuickCalendarModel's.
   - Forcing the user to populate their own dates. This shouldn't
     happen, as the code to do it is almost always going to be the same.
   It ends up being ugly. Instead, if users want to integrate things
   like events into their Calendar, they should store their own model
   for that separately; the styling code supports this. An example
   demonstrating this will be added later.

Change-Id: I79ffb354ac26b42882f3352df4342d3fa1203832
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>