Limit permitted values in String type via 'allowed' option

As discussed in Pheasant PR #101, made allowed values an option rather than a pseudo-enum.