Optimisations and significant speed ups

Introduction of irlba library should yield significant speedups.
Changing from data.frame operations to matrix operations will also
assist in speed ups.

These changes in a slightly modified version of this code were able to
speed up calculations by over 200x.

Has not yet been tested on anything but default params.