New variant of MatrixKK using numpy.lib.stride_tricks

The full Kramers-Kronig matrix took huge amounts of memory for
not especially large values of N (e.g. 4GB for N=16K). Using
stride_tricks changes the memory requirement from O(N**2) to O(N)
Added some docstrings to KramersKronig.py