selector: allow FieldSelector subclasses to return subclasses
selector: allow FieldSelector subclasses to return subclasses

In these locations, a temporary FieldSelector is created or a new
FieldSelector returned.  However if selectors are sub-classed, then the
base type will be returned.  Replace hard-coded uses of FieldSelector with
type(self), except when it is used to check if an input is of the right
type.  MultiFieldSelector gets a class property for this purpose so it too
can be subclassed.

tomo-otsuka/normalize,samv/normalize,hearsaycorp/normalize