Prevent unnecessary evaluations

Previous implementation of drop did not handle 
    
    Stream.cons(0, ???).take(1)