Support || as part of the query string. Fix provided by Максим Дубовик

Change-Id: I8a63c965101e8451de379f0a7fff6f3e4692de2a
Fixed version in ask api, removed alpha notice and did some style fixes

Change-Id: Idf18e6660a914ad0d67871f590e021bcb001f78d
Protect against unitialised/unrecognised dataitem

There are rare cases (I encountered one during import) when getShortWikiText can be called on an invalid DV. In the given case, this caused an exception. The change protects against that situation.

Change-Id: Ifcea2ef4e0e36abfcd5e477a2b34d497a002b066
Protect StubSemanticData agains DI exceptions

If the database contained data about a property whose name is no longer legal, an uncaught exception would be thrown when unstubbing all properties. The usual cause of this situation is that a special property got removed and is no longer known to SMW (because it vanished in a later release, or because it came from an extension now disabled).

Change-Id: Ic3d6d169045e800dbdd706f8963b99e62828a0d2
Fixed concept cache creation for SQLStore3

Concept caching did not work with Store3 since it was disabled explicitly (easy to fix) and since concept DIs were not read correctly frmo the database. To address the latter, it is necessary to distinguish fields in the DI table from fields that should be retrieved when fetching the DI from the DB (because the concept table has two extra fields that are not relevant to DI creation). Now all DI handlers specify which information should be fetched from the DB to build their DIs, and since this is often just one row, the DI creation allows the use of a string instead of an array that contains a single string only. This safes memory, which is the main goal in this mechanism.

Concrete changes:
* All DIHandlers have a method getFetchFields() that works like getTableFields() but only for fields whose contents is needed to create the DI.
* The SQLStore3Reader uses these fields instead of the table fields to fetch semantic data
* The SQLStoreReader uses plain strings instead of arrays whenever only one value is fetched
* The DIHandlers slightly change their dataItemFromDBKeys() implementations to use plain strings instead of arrays if only one key is needed. Checks are added to make sure that we never mistake an array for a string or vice versa (no PHP warnings even on unusual circumstances).
* Minor documentation and style updates in the affected methods/files.

Change-Id: I3f8589b5bc8210d3866e07a9bfe8bdd513ec2688
Fixed broken Special:PageProperty

This not-so-often used special page was severely broken, due to two problems:
* Parameter parsing assume WebRequest::getVal to return '' for empty parameters, but null is returned.
* The navigation bar generation used = instead of .= for adding the Next link, thus destroying most of the navigation bar.
Have not tried to clean up the rest of the code. It is ugly but short.

Change-Id: I7df5be8b729a2ea0b05eb74762611b22b4c45575
Localisation updates from http://translatewiki.net.

Change-Id: I8c9ed79cda84e1bc963d988d0097f4dd98af4d60
Updated SMWQueryProcessor API

* Disentagled some code in print request parsing
* Use array results instead of making part of the parameters call-by-ref to return outputs
* Update #ask and #show to make query object first and then create result (the query object will be needed to certain data later on)
* Deprecated a number of functions

Change-Id: I8ab01a69759f18fc57b2f06fe5c1261b1fccd8bb
Store data about inline queries

This change makes #ask and #show create new information that is stored for the page they are on. Each query creates a subobject that is used to store data about it. Currently, query string, size, depth, and format are stored. This data can be queried as usual, e.g., to find out how many queries on the wiki use a particular format, or what are the largest queries.

Changes in details:
* New special properties are declared to store the data
* All language files are updated to include translations for these properties (most are English placeholders with TODOs)
* The new properties get fixed IDs in the store
* The serialisation of query strings fixed: it escaped < and > in subquery syntax. If the string is used in a context that requires escaping, it should be escaped there.
* #ask and #show functions updated to store the data

Patch set 2: amended to also declare the same fixed property IDs for SQLStore2.
Patch set 3: amended to remove obsolete serialization code that caused a problem with SQLStore2 (Note: calling serialize() on a SQLStore2 object leads to a fatal error, maybe because it has a reference to the MW DB handler? Interesting problem.)
Change-Id: Iccd5fa173d59f1e311a03d20171710148a6b3d94