FIt-SNE Refactor
Major refactor of the code, switching to using the FIt-SNE algorithm.
These changes, as well as other fixes along the way result in:
- Faster runtime
- Lower memory footprint
- Bug fixes for compilation
- Increased stability during runtime
- Support for CUDA 10