What is the difference between shallow and deep copying in Python?