Added NormalizedCollection#onDuplicate() to control how add() behaves on conflict