text: Title: Error when passing in a default to bn.push
  Body: Bottleneck doesn't seem to be well behaved if you _pass in_ default values for `bn.push`:
  
  Default states `n=None` (and works with no value):
  
  python
  ```
  In [1]: import bottleneck as bn
  
  In [4]: import numpy as np
  
  In [5]: a=np.array([1,2,3,4])
  
  In [7]: bn.push(a)
  Out[7]: array([1, 2, 3, 4])
  
  In [8]: bn.push?
  Docstring:
  push(a, n=None, axis=-1)
  ...
  n : {int, None}, optional
  ```
  
  but when you pass in `None`, it raises:
  ```
  In [9]: bn.push(a, n=None)
  ---------------------------------------------------------------------------
  TypeError                                 Traceback (most recent call last)
  <ipython-input-9-d7ea6fc52366> in <module>()
  ----> 1 bn.push(a, n=None)
  
  TypeError: `n` must be an integer
  ```
  
  This is only really impactful when building a function that uses `bottleneck`, (which we're increasingly doing in `xarray`)