Implement Breadth-First-Search algorithm with tests

This is indented with two spaces and not four like the rest of the module.