EZP-20867: set default value of selectionRoot to null, enable empty selection root

Also refactored for readability
EZP-20867: enable empty selectionDefaultLocation, refactor for readability
EZP-20867: remove type check, applyDefaultSettings() is expected to be called before validation
EZP-20867: remove casting field settings and validator configuration to array