For the vectorizers, if a record has all its features filtered out, then it would simply return a vector of all 0.0. But when we normalized, it would turn that into a vector of np.nan. Now we just don't return the vector at all and its corresponding id.
Added a section in the test_tf_filtered() to check that this is the expected behavior.
Also fixed a bug with the distributional J-L optimal delta. If you gave a sparse_dim with 2**31 -1 it returned an np.ndarray , whose shape was (1,), and not a float.