ENH: Implement cross method for Merge Operations
- [x] closes #5401
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

This is a first draft of a ``cross`` method for merge operations. As suggested by @jreback I added a new column and dispatched to ``inner`` as a first naive implementation. I am currently wondering, if there would be a better place to adjust the arguments than the places I selected. I wanted to avoid to modify ``self`` in some method called within the constructor, so i modified the inputs before adding the parameters to ``self``. This currently does not support the ``cross`` method for join. If we get a consensus where to put the modifications, I would add support for ``join``. Also have to add more tests probably and something to the userguide


Have to look into the performance afterwards. Copies of the Left and Right frames may be a big performance hit for bigger frames?