WIP allow sorting by integers

This is a POC. If it is seen to be a viable solution I will clean it up :)

DoctrineDBAL does not currently allow sorting on integer properties. This means that when you perform an ORDER BY on a set of numbers the result may be: `10, 100, 1000, 2, 20` etc.

The best solution *would* be to use the `CAST` keyword (e.g. `ORDER BY CAST([sulu:order])`) but CAST will only ever work on static operands (e.g. `CAST('12' AS LONG)`)

This PR separates the property values into three separate columns, `props`, `long_props` and `decimal_props` and orders by all three.

````
SELECT ... WHERE ...  ORDER BY 
CAST(EXTRACTVALUE(n0.long_props, '//sv:property[@sv:name="sulu:order"]/sv:value[1]') AS INTEGER), 
CAST(EXTRACTVALUE(n0.decimal_props, '//sv:property[@sv:name="sulu:order"]/sv:value[1]') AS DECIMAL),
EXTRACTVALUE(n0.props, '//sv:property[@sv:name="sulu:order"]/sv:value[1]')
````

## Update

Performance: This patch adds linear overhead to the queries, even when not using ORDER BY.

### Using NOT NULL from 2143 nodes

NOT NULL now has to do an XML count on 3 fields per row instead of 1

````
select [i18n:de-title] AS title from [nt:unstructured] AS a WHERE [i18n:de-title] IS NOT NULL;
````

With this patch: 330 rows in set (**1.83433** sec)
With master: 330 rows in set (**1.69142** sec)

### Subset of 128 nodes from total of 2143

````
PHPCRSH> SELECT [sulu:order] FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/die-region/gastronomy') ORDER BY [sulu:order];
````

With this patch: 128 rows in set (**0.15044** sec)
With master: 128 rows in set (**0.13883** sec)

### 2143 nodes

````
PHPCRSH> SELECT [sulu:order] FROM [nt:unstructured] AS a ORDER BY [sulu:order];
````

With this patch: 2143 rows in set (**2.19197** sec)
With master: 2143 rows in set (**2.11543** sec)

Should rather pass an array `array($row['props'], $row['numerical_props'])` I think.