BUG: crosstab with duplicate column or index labels
- [x] closes #22529
- [x] tests added / passed
- [x] passes black pandas
- [x] passes git diff upstream/master -u -- "*.py" | flake8 --diff
- [x] whatsnew entry

Picking up from #28474 

cc @jreback in case this can go in in time for 1.2
I tried consolidating the tests using `eval` but for a reason I can't atm figure out this doesn't work:
``` python
    @pytest.mark.parametrize("args_res, args_exp, axis", (
        ["s3, [s1, s2_foo]", "s3, [s1, s2_bar]", 1],
        ["[s1, s2_foo], s3", "[s1, s2_bar], s3", 0],
    ))
    def test_crosstab_duplicate_labels(self, args_res, args_exp, axis):
        # GH 22529

        s1 = Series(range(3), name="foo")
        s2_foo = Series(range(1, 4), name="foo")
        s2_bar = Series(range(1, 4), name="bar")
        s3 = Series(range(3), name="waldo")

        result = crosstab(*eval(args_res))

        expected = crosstab(*eval(args_exp))
        expected = expected.rename_axis(columns={"bar": "foo"}, axis=axis)

        tm.assert_frame_equal(result, expected)

```

Update: it's because in rename_axis we pass alternately `columns` and `index` kwargs.  Green + addressed comments thanks @arw2019 and @cuchoi 