BUG: freqstr may be parsed incorrectly
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

Invalid freq like below doesn'traise `ValueError` properly. The PR makes all the below raise.

```
pd.tseries.frequencies.to_offset('U1')
# <Micro>
pd.tseries.frequencies.to_offset('3U1')
# <3 * Micros>
pd.tseries.frequencies.to_offset('-33-22U')
# <-22 * Micros>
```

might fix / xref to https://github.com/pydata/pandas/issues/8419
 ## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13930?src=pr) is 85.30% (diff: 100%)

> Merging [#13930](https://codecov.io/gh/pydata/pandas/pull/13930?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will increase coverage by **<.01%**

``` diff
@@             master     #13930   diff @@
==========================================
  Files           139        139          
  Lines         50157      50162     +5   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          42785      42791     +6   
+ Misses         7372       7371     -1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [b7abef4...e797a2d](https://codecov.io/gh/pydata/pandas/compare/b7abef4949fb1ba7fd1004feba4f47ace7004282...e797a2d93333ac6b48b56c3a63f0e667ad97e7e2?src=pr)
 Now `pd.tseries.frequencies.to_offset('.5S')` explicitly raises. I'll comment on #8419.
 @sinhrks merged #13874 so this needs a rebase
 ok, rebased.
 minor change. lgtm. ping when green.
 thanks!
