Comments and white space
Comments and minor refactoring

- Better comments about Generalised Newtype Deriving
  See Note [Bindings for Generalised Newtype Deriving]

- Refactor the interface between TcDeriv and TcGenDeriv,
  to reduce the size of the interface of the latter.
Compiler perf has improved a bit