Refactor FunkSVD and use vectorz

Many changes!

- Import vectorz as a dependency (#333)
- Refactor FunkSVD to use it
- Abstract out generalized SVD item model and item scorer (enables #427, possibly some other things)

Right now, the FunkSVD item scorer is not derived from the general BiasedMFItemScorer. There isn't a lot of code to share yet, although I would introduce a relationship in the future.

This supersedes #474, unless we decide we do not want vectorz (looking unlikely).