Prepare for tests, update dependencies

In preparation for adding tests, add some new dependencies while also
updating the existing.  Also switch to using the caret rather than
tilde for dependency management.
Refactor team-schedule

Update the code in team-schedule to pull out the logic into separate
functions.