Limit permitted values in String type via 'allowed' option

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