Energy producer BP takes $17.5 billion hit as demand slides