fixes issue with empty string. adds optional label. changes order of elements added.

New element' is added to the end of the select. New elements are added to the end but before 'New element'. Empty string does nothing. Adds option to specify 'new element' label.