Fix for enums & allowing id to be passsed in at .ctor time

Enums are now serialized using the StringEnumConverter (thanks @ Tina!)
and Feature optionally takes the id (string) as ctor parameter.