BUG: Series.ffill() with mixed dtypes containing tz-aware datetimes f…
…ails. (GH14956)

Seems to work with all the datetime classes usually encountered, although 'tz' seems to be the idiom in the codebase (not sure why?). If both need to be supported I can replace `getattr(val, 'tzinfo', None)` with `getattr(val, 'tz', None) or getattr(val, 'tzinfo', None)`, thus also giving precedence to the former (if available).

(breaking commit was 4de83d25d751d8ca102867b2d46a5547c01d7248)

 - [ x] closes #14956 
 - [x] tests added / passed
 - [x ] passes ``git diff upstream/master | flake8 --diff``
 - [x ] whatsnew entry

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

```diff
@@             master     #14960   diff @@
==========================================
  Files           144        144          
  Lines         51043      51043          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
- Hits          43214      43213     -1   
- Misses         7829       7830     +1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [45910ae...8550ed1](https://codecov.io/gh/pandas-dev/pandas/compare/45910ae646eba417120dd2bd4ada68a018c97b32...8550ed10dc1ef45ed1b120e8ef87df69744d75cf?src=pr) pls add a test in pandas.types.tests.test_inference for the inference check
and a test in series.tests.test_missing (e.g. the same exact test of the issue you had)

otherwise lgtm. Added some simple tests and corrected whitespace issue. Please let me know if you'd like some more extensive/different testing. @grutts lgtm. ping on green. @jreback all green. Had to make another commit to pass PEP8 thanks!

note I had to add an option to the test_inference test to make it *fail* w/o the change. The importance of testing first before the fix.