Use struct{} for sets instead of interface{}

Also, map[...]bool is now handled specially for a field tagged as a set. If the value is false then the key isn't included in the set.