Added Main and basic skeleton of program

The main idea is that fillProject will put a specific student on a specific project into a specific group and then call itself recursively on the remaining students. If the recursive call returns false it tries a different student or a different group until the recursive call returns a true value. This implements the backtracking we need. We will need another function that can add and remove students to some groups inside a mutable data structure.