Branch and Bound Algorithm that solves the Traveling Salesman Problem. Optimal if given enough time