ParserHook re-factoring, remove static binding, and add unit tests

Remove static binding in parser hooks and introduce unit tests in
modified classes related to in #set, #subobject, #ask, #show, #concept.

== New ==
* Add SMW\ParseData and with it eliminate the need for static binding
(SMWParseData) in most existing parser hooks
* Add SMW\QueryProcessor and with it eliminate the need for static
binding (SMWQueryProcessor) in most existing parser hooks (static
methods still exists in SMWQueryProcessor as a complete migration is
out of scope for this change)
* Add SMW\QueryData to separate methods necessary to create a query data
object when using #ask/#show
* Move SMWAsk to SMW\AskParserFunction add SMW\AskParserFunctionTest, make use of
SMW\QueryData, and remove static binding
* Move SMWShow to SMW\ShowParserFunction, add SMW\ShowParserFunctionTest, and remove
static binding
* Move SMWConcept to SMW\ConceptParserFunction, add SMW\ConceptParserFunctionTest, and
remove static binding

== Changes ==
* SMW\ParserParameterFormatter remove singleton and add first class constructor
* SMW\SetParserFunction remove static binding (SMWParseData), add
SMW\SetParserFunctionTest
* SMW\RecurringEventsParserFunction remove static binding (SMWParseData),
add SMW\RecurringEventsParserFunctionTest
* Rename SMW\RecurringEventsHandler to SMW\RecurringEventsParserFunction
* SMW\RecurringEvents eliminate dependency on global state ($GLOBALS)
* SMW\Subobject change constructor to enable access to the Title object
* Rename SMW\SubobjectHandler to SMW\SubobjectParserFunction
* SMW\SubobjectParserFunction remove static binding (SMWParseData), add
SMW\SubobjectParserTest

== Note ==
* This change will not introduce any change to the static render()
function.
* Previous base change https://gerrit.wikimedia.org/r/#/c/51974/6

Change-Id: I5d3cc9ff97f77acb05225658b1fb2f815b8b9f5f