restructuring and improvements

The new UnboundedPathFinder works the
same as the regular one except it does
not require a finite sized grid to work
on. It does require C++11 features
though and is slightly slower.