Add oneToOne Dijkstra search.
Add oneToMany Dijkstra search.
Add oneToMany Dijkstra search.
Make oneToOne return d(source, target).
Make oneToMany return map of distances keyed by targets.
Add necessary initialization step.
Add manyToOne Dijkstra search.
Add manyToMany Dijkstra search.
Add todos
Add unit tests.
Update javado
Merge pull request #16 from agouge/improvement/dijkstra

Add Dijkstra searches from and to arbitrary node subsets.

Being able to stop a Dijkstra search once a given node or a given set of nodes has been found is a big advantage in terms of saving time (one-to-one, one-to-many).

It is also interesting to be able to calculate distance tables from an arbitrary set of nodes to another arbitrary set of nodes. These methods add that functionality, returning
* one-to-one: `double` (distance from source to target)
* one-to-many: `Map<V, Double>` (distance from source keyed by target)
* many-to-one: `Map<V, Double>`  (distance to target keyed by source)
* many-to-many: `Map<V, Map<V, Double>>` (distance from source to target, keyed first by source, then by target)