Format: Use QMap instead of QHash

As the items of QHash are arbitrarily ordered, so the same formats may generate
different formatKey
Update documentation