In order to make it work, I made the following changes:
Merged Playlist::Insert() into the create() function, now there
is only one way to create a playlist.
Renamed Show::addShow() to Show::create() to make the API like
the other classes. It returns the created show ID now.
Renamed Show::populateShowUntilLastGeneratedDate() to Show::populateShowUntil(),
allowed it to accept a second parameter for an end date.
Renamed Show::populateShowsUntil() to Show::populateAllShowsInRange().
Added documentation to a number of functions.