ENH allow additional kernels on KernelPCA

Also changed pairwise_kernels to raise ValueError instead of
AttributeError, as the latter is easy to mix up with a bug.