Add better loading/loaded tracking

Instead of using a tally of items that are loading, store a hash of
id:boolean pairs, each pair representing the loading state of one item.