Tests: add TestWaterFactorsConsistency test
- Converted other tests to use BasePlayer instead of BaseEntities
- Also exposed WaterFactor methods from BasePlayer (other overloads were already public)
Doesn't stress all paths, only the main path that has updated logic
Tests: ran all unit tests