SMW\RecurringEvents eliminate restrictions and use subobjects as object storage

This change will allow recurring events to be stored as individual
entities and therefore eliminate existing restrictions (see [1])

+ Split SMWSetRecurringEvent into SMW\RecurringEventsHandler and SMW\RecurringEvents
+ SMW\RecurringEventsHandler contains parserhook related logic
+ SMW\RecurringEvents contains date calculation logic
+ SMW\Subobject minor renaming for consistency
+ SMW\Subobject scrap factory() method
+ SMW\SubobjectParser renamed to SMW\SubobjectHandler

The original code in SMWRecurringEvents has not changed much in order
to keep compatibility but it is certainly worth looking into replacing
it by PHP's DateTime() function (see [2])

#subobject ( SMW\SubobjectHandler )
	-> SMW\Subobject

#set_recurring_event ( SMW\RecurringEventsHandler)
	-> SMW\RecurringEvents
	-> SMW\SubobjectHandler
		-> SMW\Subobject

## Query
Quering results on a page level (as inheritance to a subobject)
will not create appropriate results because recurring events are now
individual entities which need to be queried as such. In order to group
events into a one-order entity, it is suggested to add a grouping
property that allows to identify related events.

{{#set_recurring_event:
|property=...
|start=...
|has group=Birthday ...
...
}}

{{#set_recurring_event:
|property=...
|start=...
|has group={{PAGENAME}}
...
}}

## Parameters
As for #set_recurring_event, it is still possible to use (at least for SMW 1.9)
the notion:
...
|include=March 16, 2010;March 23, 2010
|exclude=January 18, 2010;January 25, 2010
...
but since SMW 1.9 has introduced |+sep=
...
|include=March 16, 2010;March 23, 2010|+sep=;
|exclude=January 18, 2010;January 25, 2010|+sep=;
...
is the preferred way in defining the separator

## Tests
+ Change in SubobjectTest to reflect minor adoptions
+ Add RecurringEventsTest
+ Add SubobjectHandlerTest

[1] http://semantic-mediawiki.org/wiki/Help:Recurring_events#Storing_each_event_separately

[2] http://stackoverflow.com/questions/1751380/php-5-3-datetime-for-recurring-events

Change-Id: I5db911e536c4248bf739871846cae15610f42d51
Merge "SMW\RecurringEvents eliminate restrictions and use subobjects as object storage"