Entity items weren't being fetched from cache.
Apparently this bug only surfaced because with Ejabberd the upload
service is nested one level deeper than with Prosody.
Previously we kept all entities and their items (which are also
instances of _converse.DiscoEntity) in a flat array.
Instead, we should have a tree-like structure where items are stored
on the relevant entity (and recursively on other items).
This came out of the desire to let `converse-muc` use the API to
determine whether MUC is supported. However, we don't know the entity
JID before hand and I couldn't think of a good way to query all current
and future entities for a feature.
So `converse-muc` still does it's own thing without the API, but some
refactoring came as a result of attempting.