BUG: Strings like '2E' are incorrectly parsed as valid floats
A work colleague, David Chase, encountered some surprising behaviour, which can be reduced to the following.  The data-frame

```
DataFrame({'x': [2.5], 'y': [42], 'z': ['2E']})
```

does not round-trip correctly.  The string '2E' is interpreted as a valid float, but it should not be (according to man strtod(3), which seems a reasonable spec).

This PR changes the three variants of `xstrtod()` to reject a string where no digits follow the 'e' or 'E', and includes tests for this case.

Thanks for feedback.  Will tidy up the following:
- move test to `io/test_parsers.py`
- use `self.read_csv` in test
- remove redundant assertion on behaviour with `'2E3'`

and force-push new commits.
 New commits address feedback from @jreback.  Can squash or otherwise re-order if preferred, but for review, separate commits seemed cleaner.
 pls add a whatsnew note (bug fixes)
 Have created an issue (#12237), to have something to refer to in the whatsnew entry.
 @bennorth you didn't actually have to create an issue as you can just refer to the PR number itself (but ok)
 (Ah, OK, sorry.  I saw that the other entries in whatsnew did refer to issues so followed that pattern.)
 I should have seen that one --- there is no `self` in that top-level function.  Will revert.
 (Build/test failure matches failure in current `master` and appears unrelated to this change.)
 ok, couple of small comments. pls rebase on master & squash. ping when green.
 (Rebased on master and squashed.)
 (Force-push of b51a35a is fresh re-base onto master.)
 @jreback Pinging as requested --- squashed, rebased, and build is green.
 @bennorth lgtm. But have a look here: https://github.com/pydata/pandas/pull/10133

maybe move your tests near this one (if they are not there now)

sorry, rereading this had to do with the decimal places in the mantissa I guess.
 Yes, it does make sense to move the new tests near related ones.  New commit on the way.  Thanks.
 Recent build failures were in `master` and unrelated.  Have just force-pushed newly-rebased commit.
 thanks @bennorth 
 Thanks!
