Get shortest-path examples working.

This example needs a lot of clean up. Using an almost purely type class
approach is causing me to hit some annoying scoping/organization
issues. I'm really tempted to just define everything in a single object
and use local scope to solve all the issues.

I'm using Scala's Stream to get the equivalent of Haskell's lazy lists.
There could potentially be memoization concerns, but for now I don't
have a better idea (other than implementing a custom stream/list).
Hopefully cleaned-up the code organization a bit.
Get evalExpr plugged-in and working.