Massive refactoring for various computation modes support and a few
fixes

Contains the following changes and fixes:

- OpenCL linking
- Fixed faces example
- Changed types in barnes-hut SNE to support float/double scalars
- Changed the way Methods are described
- Added new computation_strategy (cpu, opencl)
- Added ViennCL finder
- Refactored eigendecompositions part
- Fixed eigendecomposition unit-test according to new changes