partial checksums: Make changes to structure and bugfixes

This update folds in the feedback from the previous commit, including
bugifxes, and changing the output structure of resolve_partial_checksum.
The new strcuture will no longer return FALSE without error.  Also,
the hashtable foreach is no longer necessary and has been replaced by a gList.

I can easily rebase and squash this commit into the previous after review,
but I thought that reviewing might be easier if you could see the changes.