Added GraphSearch, also use Option to handle exceptions of empty queue
Generalize the queue to generlize search methods, and have different implementation of dfs and bfs