dual tree KDE added

- dual tree kde added with unittests
This method is pretty long. Can you please write more comments so it is easy to follow what's going on?