How does ARC (Automatic Reference Counting) work in iOS development? What are its benefits and limitations?