SRF\EventCalendar use of $.widget factory and QUnit

## General
Based on the work done in I3f7407a1316, all ui related tasks are taken
from ext.srf.eventcalendar.js and have been converted in using the
$.widget factory to increase maintainability and decouple ui from
data-parsing logic.

Newly created $.widgets are:
+ srf.calendarpane
+ srf.calendarlegend
+ srf.calendarbutton
+ srf.calendarparameters

The remaing part of the ex.srf.eventcalendar now only contains
+ messages
+ fullCalendar initialization
+ result parsing/quering
+ setter/getter (via _setOption) for updating the $.widget instance

+ Fixed minor glitches in order to support IE 9 while for all other
IE < 9 users will see an error message
+ Micro optimization in api.query.printouts.search.type()

+ Add some docs

+ Use SMW\ApiResultPrinter instead, use data.query.ask.parameters
directly instead of data.options

+ Add new portlet to switch between earliest/latest start

+ Add Qunit (17 tests) ext.srf.formats.eventcalendar.tests
++ instance test
++ parse test
++ startDate test
++ update test

+ Add Qunit (9 tests) ext.srf.widgets.eventcalendar.tests
++ calendarpane widget
++ calendarbutton widget
++ calendarparameters eventStart

+ Add custom event/hook handling (ext.srf.hooks.eventcalendar.js)
++ srf.eventcalendar.updateAfterParse
++ srf.eventcalendar.eventRender which shows an experimental rdfa
support for events (see also Ida7e1ec0)

Change-Id: Iaadba4777f7d16d700473481aea2999ffc4c4a9b