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