#16 Implement fair and concurrent water access
What does this MR do and why?
- Ensures that only the first firetruck in the priority queue is considered and everyone else is ignored until it's denied/ granted
- Keeps the position of a denied firetruck in the priority queue to ensure fairness
- Fixed freeMove function in firetrucks from recursive to iterative due to stack overflow
Closes #16 (closed)