BP takes hit of up to $17.5bn as it forecasts cheaper oil