Cleanup QSCatalogEntry API.

Please note this depends on #1585, because I've needed the warning count to be low (so you'll actually see both in the diff until the other gets merged).

I got started on that because I tried to run the old `appledoc` branch I got here, which raised an exception because of the `_contents`/`contents` getter not having the right name, and when I saw `_contents`/`contents` + the property I just triggered cleanup mode.

I still have a bunch of things to fix (since I've added some warnings), but for now I'll wait on the various other branches getting merged...