Add ST_ShortestPathTree

Calculates the shortest path tree from a given vertex of a
graph using Dijkstra's algorithm. Possible signatures:
```mysql
-- Return type:
--     TABLE[THE_GEOM, EDGE_ID, TREE_ID,
--          SOURCE, DESTINATION, WEIGHT]
ST_ShortestPathTree('INPUT_EDGES', 'o[ - eo]', s)
ST_ShortestPathTree('INPUT_EDGES', 'o[ - eo]', s, r)
ST_ShortestPathTree('INPUT_EDGES', 'o[ - eo]', 'w', s)
ST_ShortestPathTree('INPUT_EDGES', 'o[ - eo]', 'w', s, r)
```

where
* `INPUT_EDGES` = Edges table produced by `ST_Graph` from table `INPUT`
* `o` = Global orientation (directed, reversed or undirected)
* `eo` = Edge orientation (1 = directed, -1 = reversed, 0 = undirected).
   Required if global orientation is directed or reversed.
* `s` = Source vertex id
* `r` = Radius by which to limit the search (a `DOUBLE`)
* `w` = Name of column containing edge weights as `DOUBLE`s