Add function to create an empty level
Add priority queue package
Start on path finding module
Add Data.Default package

Instances of the default type class can be created via 'def'
Add PathFinderState ADT

The PathFinderState ADT keeps track of the required state for A*
Add PathFinderConfig

The PathFinderConfig decouples the path finder from external
dependencies on e.g. the Level by passing in a config ADT which provides
required methods like checking if a cell can be walked or not.
Add the PathFinder type

The PathFinder is a newtype that makes use of a ReaderT and StateT
transformer to allow access to the PathFinderState and PathFinderConfig
ADT, respectively.
Extend PathFinder with visit and expand functions

Some new methods:

- expand: Retrieve all possible neighbors of a cell
- expandUnvisited: expand and filter by visit status
- alreadyVisited: check if the cell has already been visited
- visit: perform the state effects necessary when visiting a cell
Add exec- and evalPathFinder (equivalent to State)
Switch from 2d tuple coords to 3d Coord adt

Also introduced helper methods from2d and to2d to make the switch easier
Fixing syntax error
Refine findPath
Merge branch 'develop' into path-finding

Conflicts:
	src/Level.hs
	test/TaskSpec.hs
Finish findPath functionality
Be more generic with MonadState instead of State
deleted merge files
added test if path is blocked => terminate
Replace explicit gets and asks with lens equivalent
Add searchPath function that wraps PathFinder execution
Add more complicated check for path finding