Separate header for WKNNF class
Merge branch 'feature/WKNNF-header'

* feature/WKNNF-header:
  Separate header for WKNNF class
Partial implementation of WKNN template class

* still need to figure out how to instantiate specific classes
  (e.g. WKNND)
* looks like I need to use struct rather than class definition
  see e.g. Nabo::NearestNeighbourSearch
fix name of queryWKNN method exported to R

* now WKNN since generic
Proper typedef of WKNND based on WKNN

* seem to have to convert to struct
* see libnabo or http://www.gotw.ca/gotw/079.htm
changed header name
Fix RcppModules wrapping of template class

* pointed out by Romain Francois on rcpp-devel who wrote:

This looks related to what RCPP_EXPOSED_CLASS does, perhaps because your class comes from a template,
you could try RCPP_EXPOSED_CLASS_NODECL instead. The only difference is that it does not add the class
forward declaration, so you'd have to have it after you have defined or declared your class.
Explicit template class instantiation for linker

* this fixes a linker error and requires a comparatively small change
* I believe a future user could still #include the include file
  and do an explicit instantiation with some other type
Fix tests now that queryWKNND -> queryWKNN
rename WKNND.cpp to WKNN.cpp since it is templated
Fix input / return types from/for R

* several cases where we _don't_ want the template scalar type but just want double
* note also that we need to write:

  MatrixXd points = data_pts.transpose().template cast<double>();

because Eigen's cast() must presumably contain some reference to the type of the input
Remove references to NNSearchD
method queryD -> queryT since takes <T> input
simplify transpose()
Switch to template-based WKNNF class
Fix tests referring to queryWKNNF method