A Detailed Review of Data Deduplication Approaches in the Cloud and Key Challenges