BUG: applymap on empty DataFrame returns Series (#8222)
 - [x] closes #8222
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master | flake8 --diff``
 - [x] whatsnew entry for 0.20.0

Within `applymap`, the data is converted into a numpy array with `asobject` [here](https://github.com/pandas-dev/pandas/blob/master/pandas/core/frame.py#L4291) and evaluated with the `apply` method `_apply_empty_result` since this frame is empty. The numpy array is compared to an `Series` [here](https://github.com/pandas-dev/pandas/blob/master/pandas/core/frame.py#L4112) which proceeds to get returned as a `Series` [here](https://github.com/pandas-dev/pandas/blob/master/pandas/core/frame.py#L4118). 

Found that passing in the data without using `asobject` allows the logic to return a copy of the empty dataframe [here](https://github.com/pandas-dev/pandas/blob/master/pandas/core/frame.py#L4120).

## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14977?src=pr) is 84.65% (diff: 100%)
> Merging [#14977](https://codecov.io/gh/pandas-dev/pandas/pull/14977?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will increase coverage by **<.01%**

```diff
@@             master     #14977   diff @@
==========================================
  Files           144        144          
  Lines         51047      51049     +2   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43216      43218     +2   
  Misses         7831       7831          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [d7e8f31...255db8e](https://codecov.io/gh/pandas-dev/pandas/compare/d7e8f316dc7155252fa47ea23a3074d7d0197e54...255db8e8e65ccb51497379dea12f318fa503da89?src=pr) Changes made and all green. Thanks! thanks!