BP closes sale of Texas refinery to Marathon for $2.4 billion