BLD: Fix sparse warnings
- [x] split from #13849 (comment)
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`

Because sparse `IntIndex` and `BlockIndex` store value locations as `int32`, its size / block numbers can't exceed `int32` also.

warnings has been disappeared in appveyor. 
- https://ci.appveyor.com/project/sinhrks/pandas-2dhxb/build/1.0.669/job/2s24fpuxk3d2nrvq

## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13942?src=pr) is 85.30% (diff: 100%)

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

``` diff
@@             master     #13942   diff @@
==========================================
  Files           139        139          
  Lines         50157      50157          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
- Hits          42785      42784     -1   
- Misses         7372       7373     +1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [b7abef4...16164fe](https://codecov.io/gh/pydata/pandas/compare/b7abef4949fb1ba7fd1004feba4f47ace7004282...16164fe337826a8dd37913476e0f4a6f3be17c51?src=pr)
 thank you sir!
