Improved Loading State 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. This is particularly useful when a layer does not finish loading all tiles before dispatching a new loading event.