[nemo-qml-plugin-calendar] Fix some all day event issues on AgendaModel

All day event end time is inclusive on the event. Event cache didn't
consider this properly.
Merge pull request #28 from pvuorela/master

[nemo-qml-plugin-calendar] Fix some all day event issues on AgendaModel
[nemo-qml-plugin-calendar] Remove friends
[nemo-qml-plugin-calendar] Do not define bit size of boolean member
[nemo-qml-plugin-calendar] Remove unnecessary include
[nemo-qml-plugin-calendar] Remove unused functions and uninline
[nemo-qml-plugin-calendar] Header and source files for NemoCalendarEventOccurence
[nemo-qml-plugin-calendar] Enablers for DB operations in thread

The NemoCalendarManager class controls a thread implemented by
class NemoCalendarWorker which runs all DB operations.

NemoCalendarManager provides an API through which calendar data
is accessed. Most of the functions in the API are asynchronous,
results are reported through signals. The two exceptions are
the synchronous functions NemoCalendarManager::createEvent(),
and NemoCalendarManager::convertEventToVEventSync().

NemoCalendarManager keeps a cache of loaded events and occurrences,
and consults the cache when it gets requests for calendar data.
In addition, NemoCalendarWorker prepares the data structures used
by NemoCalendarManager to keep calendar data processing in the GUI
thread to a minimum.

NemoCalendarManager and NemoCalendarWorker load data from DB into
memory by time periods. NemoCalendarManager stores the loaded
periods so that it knows what data is currently cached, and what
data needs to be reloaded if the DB is changed by some other
software entity. The periods are automatically managed by
NemoCalendarManager.
[nemo-qml-plugin-calendar] Refactor plugin to use DB thread

No changes to the public API.
[nemo-qml-plugin-calendar] Remove obsolete code