Fix memory leak in cython functions length and set_number_of_points

I found a memory leak in the cythonized version of `dipy.tracking.streamline.length` and `dipy.tracking.streamline.set_number_of_points`. Cython automatically convert a list of numpy arrays into a vector of memoryviews but at the end of the function, when clearing the vector, memviews' refcount are not decreased. So, I do it manually.

I added a new unit test to expose the memory leak: `test_streamline:TestStreamline.test_memory_leak()`. Below, I report the difference in RAM usage between successive calls to each function.

**Before**
`length()`
['0.13Mo', '0.22Mo', '0.28Mo', '0.50Mo', '0.31Mo', '0.33Mo', '0.08Mo', '0.41Mo', '0.14Mo', '0.06Mo', '0.47Mo', '0.31Mo', '0.32Mo', '0.17Mo', '0.48Mo', '0.29Mo', '0.06Mo', '0.13Mo', '0.20Mo']

`set_number_of_points()`
['1.50Mo', '0.90Mo', '1.26Mo', '1.11Mo', '1.89Mo', '1.06Mo', '1.02Mo', '1.09Mo', '1.12Mo', '1.17Mo', '1.12Mo', '1.12Mo', '1.12Mo', '1.12Mo', '1.12Mo', '1.12Mo', '1.12Mo', '0.98Mo', '1.09Mo']


**Now**
`length()`
['0.15Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo']

`set_number_of_points()`
['0.06Mo', '0.17Mo', '0.00Mo', '0.25Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo', '0.00Mo']


Lets see if this works ... github is being weird

I'm a little worried that you're only checking the shape of the first array here. Could this lead to segfault if any of the other arrays do not have the right shape? It seems like there is a pretty easy fix thought, if you just make `_length` work for any number of points you will not have this issue, you can drop the TODO and you can take care of #412 at the same time (merging this and #412 going to be a paint so we might as well just fix that here).