Tabular coach reports can now be generated for playlists as well as topics

Is this on the right track to resolve #2808?
> This will throw an AssertionError if the entry is malformed.

Indeed, I was wondering if it should silently fail or not if the entry is malformed. Because data for the topic tree and VanillaPlaylists are disjoint, it's conceivable that a VanillaPlaylist might have an entry with no corresponding node in the topic tree. (Like if one source of data is changed but another is not.)