Effective Unmanned Surface Vehicles River Navigation: Using Learning Methods for Obstacle Avoidance, River Following, and Docking