* Fixed a bug in `monotone_constraints` calculation.
* Added a sklearn wrapper for both backends - `PGBMRegressor` is now available as a sklearn estimator.
* Renamed `levels_train` attribute in `train` function to `sample_weight` and `levels_valid` to `eval_sample_weight`, such that it is easier to understand what these parameters to.
* Added `sample_weight` and `eval_sample_weight` to Numba backend.
* Added stability constant epsilon to variance calculation to prevent division by zero (mostly happened on Numba backend, due to its higher precision in case there is a zero gradient mean in a leaf)
* Fixed bug that caused error for `min_data_in_leaf`, was caused by too low precision (BFloat16 of split count array in CUDA kernel). Set default `min_data_in_leaf` back to `2`.