Judge caps BP Gulf of Mexico spill fine at $13.7 billion