WIP Numerical sorting

This PR adds an extra column `numerical_props` which is populated with `LONG`, `DECIMAL` and `FLOAT` values (in an XML doc).

When sorting the query will ORDER first by casting the value of the property in the `numberical_props` column and then by the standard `props` column.

````
SELECT ... WHERE ...  ORDER BY 
CAST(EXTRACTVALUE(n0.numerical_props, '//sv:property[@sv:name="sulu:order"]/sv:value[1]') AS DECIMAL),
EXTRACTVALUE(n0.props, '//sv:property[@sv:name="sulu:order"]/sv:value[1]')
````

## Benchmarking

- The performance should be the same when no ORDER BY is issued.
- We should expect a small performance penalty when ORDER BY is issued.

Master:

````
SELECT \* FROM [nt:unstructured];
2143 rows in set (1.83914 sec)
2143 rows in set (1.85060 sec)
2143 rows in set (1.90370 sec)
SELECT \* FROM [nt:unstructured] ORDER BY [i18n:de-title];
2143 rows in set (1.99362 sec)
2143 rows in set (1.97377 sec)
2143 rows in set (1.96494 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE i18n:de-title IS NOT NULL ORDER BY [i18n:de-title];
330 rows in set (1.62831 sec)
330 rows in set (1.64075 sec)
330 rows in set (1.64439 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') AND i18n:de-title IS NOT NULL ORDER BY [sulu:order], [i18n:de-title] DESC;
57 rows in set (0.55199 sec)
57 rows in set (0.55553 sec)
57 rows in set (0.55623 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service');
57 rows in set (0.49803 sec)
57 rows in set (0.49037 sec)
57 rows in set (0.49021 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') ORDER BY [i18n:de-title];
57 rows in set (0.51677 sec)
57 rows in set (0.53401 sec)
57 rows in set (0.51795 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') AND i18n:de-title IS NOT NULL ORDER BY [i18n:de-title];
57 rows in set (0.54286 sec)
57 rows in set (0.54715 sec)
57 rows in set (0.53248 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') AND i18n:de-title IS NOT NULL ORDER BY [sulu:order], [i18n:de-title] DESC;
57 rows in set (0.57465 sec)
57 rows in set (0.56579 sec)
57 rows in set (0.54730 sec)
````

This PR:

````
SELECT \* FROM [nt:unstructured];
2143 rows in set (1.84041 sec)
2143 rows in set (1.85419 sec)
2143 rows in set (1.84931 sec)
SELECT \* FROM [nt:unstructured] ORDER BY [i18n:de-title];
2143 rows in set (2.02368 sec)
2143 rows in set (2.03671 sec)
2143 rows in set (1.98641 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE i18n:de-title IS NOT NULL ORDER BY [i18n:de-title];
330 rows in set (1.67993 sec)
330 rows in set (1.63423 sec)
330 rows in set (1.73314 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') AND i18n:de-title IS NOT NULL ORDER BY [sulu:order], [i18n:de-title] DESC;
57 rows in set (0.59444 sec)
57 rows in set (0.58873 sec)
57 rows in set (0.58365 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service');
57 rows in set (0.49939 sec)
57 rows in set (0.49852 sec)
57 rows in set (0.48778 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') ORDER BY [i18n:de-title];
57 rows in set (0.53931 sec)
57 rows in set (0.51338 sec)
57 rows in set (0.52842 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') AND i18n:de-title IS NOT NULL ORDER BY [i18n:de-title];
57 rows in set (0.52624 sec)
57 rows in set (0.53926 sec)
57 rows in set (0.54423 sec)
SELECT \* FROM [nt:unstructured] AS a WHERE ISDESCENDANTNODE(a, '/cmf/stanton/contents/service') AND i18n:de-title IS NOT NULL ORDER BY [sulu:order], [i18n:de-title] DESC;
57 rows in set (0.57790 sec)
57 rows in set (0.56722 sec)
57 rows in set (0.56892 sec)
````
Always populate `props` column