Exelon agrees to buy Pepco Holdings for $6.8 billion