Cagliari stun Roma to climb out of Serie A drop zone