Added:
	- .swo VIM swap files added to .gitignore -- mainly for me
	- Path can now be calculated with regular graph search or
	  bidirectional search (starting at each endpoint and doing its
own graph search until they connect) -- operated using another
constructor parameter for Path
	- The time of Path creation is now measured and printed with
	  grid's display_path()
	- In main.py, the display of each grid can now be turned on or
	  off easily with DISPLAY_GRID const
	- PathNodes now hashable so they can be used in sets

Modified:
	- Grids' display_path() now prints (in my opinion) in a more
	  readable form
	- Graph Search method in Path slightly configured.. checks
	  frontier before adding a new node to frontier so that checked
PathNodes can be placed in the past nodes checked variable after
checking if it was the goal