Kind variables in RHS of an associated type instances should be bound on LHS

This patche fixes Trac #9574.

The previous Note [Renaming associated types] in RnTypes appears to me to be wrong;
it confused class and instance declarations.

I have:

 * Treated kind and type variables uniformly. Both must be bound on the LHS
   of an associated type instance.  Eg
       instance C ('KProxy :: KProxy o) where
          type F 'KProxy = NatTr (Proxy :: o -> *)
   is illegal because 'o' is not bound on the LHS of the instance.

 * Moved the Note to RnSource and fixed it up

This improves the error message from T7938. However it made the code in
T6118 incorrect. We had:
  instance SingE (a :: Maybe k) where
    type Demote a = Maybe (Demote (Any :: k))
and that is now rejected, rightly I think.
Rename some of the functions in NameSet, to make the uniform with VarSet etc

For ages NameSet has used different names,
  eg.   addOneToNameSet   rather than    extendNameSet
        nameSetToList     rather than    nameSetElems

etc.  Other set-like modules use uniform naming conventions.
This patch makes NameSet follow suit.

No change in behaviour; this is just renaming.

I'm doing this just before the fork so that merging is easier.