British Petroleum needs to clear the mess: Cameron