Re-write search maze with paths and current-path

This will allow us to easily switch between depth first search and
breadth first search.