BUG: Convert float freqstrs to ints at finer resolution
- [x] closes #8419 
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

Passing `'0.5min'` as a frequency string should generate 30 second
intervals, rather than five minute intervals. By recursively increasing
resolution until one is found for which the frequency is an integer,
this commit ensures that that's the case for resolutions from days to
microsecond

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

```diff
@@             master     #14378   diff @@
==========================================
  Files           144        144          
  Lines         50957      50972    +15   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43469      43485    +16   
+ Misses         7488       7487     -1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [86233e1...65a5163](https://codecov.io/gh/pandas-dev/pandas/compare/86233e15193c3bcd0f646915891ca6c7892335d9...65a516347afafa0f45cc266761e3ae27a8c0079f?src=pr) can you rebase just a little docs, otherwise lgtm. Made the latest changes quickly myself. @jisantuc Thanks a lot for this nice contribution!