Added faster 1D rolling median filter function

New function works much much faster than the "dumb" brute force method (by about a factor of 15-20).  It doesn't work with a oversampled filter kernel, but from the preliminary testing I did, this doesn't seem to change much (obviously doesn't change anything near the center, where the ring removal really matters).  I'm still not sure why the paper doesn't mention this, but it seems like the over sampling really only makes sense when you leave the image in cartesian coordinates - once you transform to polar coordinates, the median doesn't really change due to oversampling. Maybe look into if that's how the filter is supposed to work?

Also, for some reason I completely screwed up the "round" functions in a lot of the files, by just making it needlessly complicated.  I think it's still over complicated, so check that to see if I can't simplify it down even more.

Also, look into populating the "edge cases" directly into the image array, so that the filter doesn't have to do a check to see if it's near the edge (might speed it up a bit? not sure)
Same as last commit message, just forgot to add all changed files