pca: fix severe bug in macro

* This bug caused CUDA calls surrounded by this macro to be
  executed twice! Arrrrrgghh, macros!!!!
pca: make CUDAPCAData copy the input data in its own buffer

* This has required rewriting the classes. The superclass
  CUDAPCAData now offers support for all subclasses with
  any possible buffer size.
pca: fix functions to upload and download data from GPU
pca: fix copy direction in test code