event-widget: add ::clone API
month-view: initial work to new mockup from Lapo

There's a bunch of stuff missing here, but this code is already working.
This includes only part of the drawing code, I already take into account
here LTR and RTL languages.
Here month-view make use of classes for styling different regions of the
grid, there are:
1. header class, which is used for the font and color details of the
days naming on the top of the grid
2. current class, which is used for drawing the current day number and
its background
3. lines class: which set the color property of the lines in the grid
4. :selected pseudo-class is used for drawing the font on the days
marked when creating an event. This will work as well for keyboard
navigation

What's missing here:
1. properly update click/press marks to new model
2. draw border around the selected days
month-view: updated press/release/motions handlers

Now internal values of button press, motion and releases are kept
according the cell numbers alone, as explained in the comments.
month-view: organize, clean code
month-view: draw selected days marks
month-view: fix sigsegv if end_date is not created
event-widget: add helper API

Added GcalEventWidget::is_multiday to check if an event span more than
one day.
Added GcalEventWidget::compare_by_length which compares two event
widgets according to the duration of the events they represent.
month-view: rework internals data structures

Changed internals data structures in order to handle allocation of
multidays events properly.
Modified GtkContainer::add, GtkContainer::remove and
GtkContainer::forall according to this new internal structure.
Commented out GcalView::get_by_uuid since it might get deprecated.
event-widget: add convenient API to query dates

Simply it is faster not to allocate memory when there is no need of it
month-view: helper to calculate the split of widgets

This calculates the split according to the space left on each cell
month-view: fix ::add, ::remove, ::forall vfuncs

Fixed some bugs:
1. Insert single-day event-widgets on the proper structure
(GcalMonthView::single_day_children)
2. Add FIXME for keep single-day events-widgets ordered
3. Properly handle hash table replacement. GHashTable::replace call
key_destroy_func() and value_destroy_func() if those are provided
4. Don't keep NULL lists on any of the hashes kept by GcalMonthView
5. Change the order in which forall is executed. Don't modify the hashes
while iterating over it.
month-view: initial drawing of overflow indicator

Added FIXME for properly wording the message
month-view: add helper for hidden event-widgets

When an event is deleted we hide it while the notification with the Undo
option is shown and after a while the event is actually destroyed. This
helper is meant for keeping a set of the event-widgets hidden in that situation
month-view: initial implementation of size alloc

This implements breaking of events, and showing of its parts. It also
provides the information need for the drawing of the overflow indicator.
This implementation brings support to RTL locales as well as LTR.

There's some things still missing here:
1. Mark the widgets with CSS classes for styling its broken status
2. Draw properly the overflow indicator
month-view: overflow indicator drawn centered