QtOrganizer: fix initial date for recurrent events

Skip events before the initial date of a recurrent event.
Otherwise the resulting number of events is wrong
for rules with COUNT,
e.g. "RRULE:FREQ=WEEKLY;COUNT=8;BYDAY=MO,TU,WE".
If the initial date is on Wednesday the resulting dates list
will have only 6 entries.

Change-Id: I801911d34ed0e0d1f5b2e66aab657e79b087b024
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
QmlOrganizer: fix limit date conversion in a recurrence rule

Convert DateTime to QDate in the UTC timezone similar to a conversion
in QDeclarativeOrganizerItemRecurrence::setRecurrenceDates.
Otherwise the limit date will depend on the local timezone
and resulting recurrent dates will be different for TZ=HST and TZ=JST.

Change-Id: Ie87d1304cc8cae7441aeff521b9d0fd2f3276001
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
[Memory backend] Allow to modify the default collection

...just like JsonDB backend did.
It sounds odd that one can not change the default collection's content,
i.e. replace the default name with a localized one or change
the collection's color.

Change-Id: If7d5ced0351416c430277908c1b6c43ed7eb576d
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
QtOrganizer: reduce code duplication

inline modifier without static implies external linkage,
so an arbitrary realization of functions may be used
without a warning or error message (tested with gcc).
According to DRY principle, it is better to keep one realization.

Change-Id: Id67a71af0998603707c8c8608e7a9dcd881670f3
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
[QOrganizerCollection] Add SecondaryColor metadata key

Similarly to Color and Image metadata keys, this could be useful
in data visualization purpose.

Change-Id: Ibd1e59b2f2bec41052eee8cd6a95eef1d47410e7
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
Reviewed-by: Michael Krasnyk <michael.krasnyk@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Porting qmlorganizer auto tests

Tests have been adopted to new QML organizer interfaces.
Now memory backend is a reference one and jsondb backend tests
are optional. Also some code duplications and
unconditional wait functions have been removed.

Change-Id: Iac291343f04103b7a7970a199e860cf4fc58f5e8
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>