Fix waiting count stat in aggregate manager.

Only count mDirtyAggregateObjects.size() when computing the number of
waiting aggregates since the objects in the mObjectsByPriority lists
that were also being counted should still be in mDirtyAggregateObjects.
Fix queuing of dirty aggregates and stats.

Only increase the number of queued aggregates if the aggregate wasn't
already in the queue. Not doing this was leading to an ever-increasing
queued count even though new objects weren't really being added.

Also track uploading aggregate meshes because the two existing
containers can't distinguish between the four possible states (dirty
and unqueued, queued for generation, generated and uploading, or
finished uploading). Use this to avoid re-enqueuing a mesh that's
still being uploaded.