Describe the Page Object Model (POM) and explain how it helps reduce code duplication and maintenance effort.