Asthetic changes for D

These changes are mostly to make the code look a little more like D.

* Utilize pure to do an immutable conversion
* Use splitter instead of split; and map to int
* Initialize 'visited' with array ops
* Implement longest path using map/reduce, noting that reduce is very slow.