Update truncate() documentation and testcases
- [x] closes #11382 
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [ ] whatsnew entry

I'm not sure what to make of those codecov failures ...
 just do the big selection across the 0th dimension 
 The actual tests were OK (although I seen OutOfMemory exceptions ...), but the `_construct` wasn't.

For `Series/DataFrame` `self._construct(,index=,...)` vs for `Panel/Panel4D` `self._construct(,major_axis=,minor_axis=,...)` In this test I have to have the particular index.

How do you merge these?
 Are you OK with this being under `Series`?
 you need to make this generic, so no
 @jreback Please offer some snippets on how you see this being make generic (I described what I ran into in the previous post). Thanks
 @jreback How do you see this moving forward? Thanks
 so in `test_generic.py` you can construct something generic like this:

```
shape = [int(1e6)] + ([1] * len(self._ndim-1)]
obj = self._construct(shape)
```

so will give you the first dim of 1e6 and the others 1
 @jreback Thank you. I made the changes, the 2e6 takes a long time to run locally (in Panel) ...
 Timing out in travis-ci too `No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.`
 thanks @gliptak 

the panel comparator was doing things a very slow way. all fixed up.
 @jreback Thank you for fixing Panel comparator.
