rate.py: subclass ATanLogarithmicBins from IrregularBins

- should fix the problem of degenerate bin boundaries in high density
  binnings
pylal.rate: edit docs so that doctest passes
add unit tests for rate.py
rate.py: tweak 2d interpolator in InterpBinnedArray

- the hack wasn't good enough in the end.  we really do need to be careful
  and do the piece-wise linear interpolation on triangular patches within
  each bin to ensure we never exceed the range of values in the array.

- also, add a docstring to enable unit tests for this code