Turn the PhotosBaseItem sub-classes into extensions

The idea is to reduce the amount of code that has to be sprinkled all
over the place when adding a new content source. Instead, we should be
able specify most of that in the sub-classes of PhotosBaseItem.

This is the first step in that direction.

Fixes: https://bugzilla.gnome.org/731865