We mainly change two pieces of behavior in that commit:
a) we make sure to not reuse ids which could be already used in the data
set when load is called;
b) we go through the collections (and allocate their id) in width first
and not in depth first.
This way we allocate the collection ids in the same order than akonaditest
from the same XML. It will be useful later on for the acceptance tests.