Add ST_ShortestPath

#### Signatures
```mysql
ST_ShortestPath('input_edges', 'o[ - eo]', s, d)
ST_ShortestPath('input_edges', 'o[ - eo]', 'w', s, d)
```
where `o`, `eo`, `w`, `s` and `d` are as for `ST_ShortestPathLength`.

#### Result
Returns a table containing the following columns:
* `THE_GEOM` - Edge geometry
* `EDGE_ID` - Edge ID from ST_Graph
* `PATH_ID` - Global path ID
* `PATH_EDGE_ID` - Local path ID
* `SOURCE` - Source ID 
* `DESTINATION` - Destination ID
* `WEIGHT` - Edge weight

*Note*: The local ID always corresponds to the number of steps in the
shortest path indicated by the global ID.

*Note*: Edges are listed twice when shortest paths diverge, but only once when
shortest paths converge. When they converge, only the minimum
global ID is conserved.

*Note*: The current implementation of predecessor edges in JNA is a Set, so the
order is unpredictable. This is why I put some unit tests in comments until I
can fix this.

**TODO**: ST_Graph allows the user to specify the geomtry column. For now, I assume
the geometry column is always column 1, but I need to handle this better.