JetBlue agrees to buy Spirit for $3.8 billion