Removed unnecessary allocations and casts

A lot of data was being allocated when reusing old segments was
possible... I took advantage of this as much as possible.  I also
optimized the distance normalization.
don't reallocate cs
use np.all instead of python's all
Merge pull request #13 from mynameisfiber/master

Removed unnecessary allocations and casts