def new_with_size n, opts={}, &block
        value = opts.delete :value
        block ||= ->(_) { value }
        Daru::Vector.new Array.new(n, &block), opts
      end
Create a new vector by specifying the size and an optional value
and block to generate values.

== Description

The *new_with_size* class method lets you create a Daru::Vector
by specifying the size as the argument. The optional block, if
supplied, is run once for populating each element in the Vector.

The result of each run of the block is the value that is ultimately
assigned to that position in the Vector.

== Options
:value
All the rest like .new