ConocoPhillips to buy Marathon Oil in $17.1 billion all-stock deal that bolsters shale assets