Added
* Cython back-end for `_fit()`, `_predict()`, `_recommend()` - the Cython `_fit()` function is 5X-10X faster than the original Numba version, and `predict()`/`recommend()` are about the same speed.
Changed
* split `regularization` into two parameters: `alpha` to control the L2 regularization for user/item indicators and `beta` to control the regularization for user-features/item-features. In testing user-features/item-features tended to have exploding gradients/overwhelm utility scores unless more strongly regularized, especially with fairly dense side features. Typically `beta` should be set fairly high (e.g. 0.1) to avoid numerical instability.