Reduce IdentifierField
Further on the journey to refactoring IdentifierField, now talking away all the 'mode' enums, and replacing the main data member with a variant.
'has_maximum' and 'has_minimum' methods now disappear: the field must have maximum and minimum if it is not empty. Because of this, several clients need updating.
Various small internal improvements, such as taking advantage of the fact that vectors are sorted when looking for values.
Edited by Shaun Roe