Added EventSource, a template for event-generating objects.

Updated Roster to extend EventSource, added the addPlayer and
removePlayer methods, and added tests for both.