ENH: Add duplicated/drop_duplicates to Index

Closes #4060.

```
idx = pd.Index([1, 2, 3, 4, 1, 2])
idx.duplicated()
# Index([False, False, False, False, True, True], dtype='bool')
idx.drop_duplicates()
# Int64Index([1, 2, 3, 4], dtype='int64')

idx.duplicated(take_last=True)
# Index([True, True, False, False, False, False], dtype='bool')
idx.drop_duplicates(take_last=True)
# Int64Index([3, 4, 1, 2], dtype='int64')
```
About the `Series or Index`, could you do something like in generic.py with substitution of `klass` name so that only `Series` or `Index` shows up in the respective docstring?