ENH: Add raw.estimate_rank() function

It's not perfect (thus the "estimate" in the method name and the strong disclaimer in the docstring), but it seems to give me reasonable results for my datasets. See below. Tests have been added, and I'm happy with how it works for now. Feedback welcome on better methods. Perhaps we should have a `method` argument if there are multiple reasonable approaches...