Vector: return self on #set, #drop, #take if op doesn't modify the vector

* `Vector#set` returns `self` if the identical item already exists (same Ruby object_id).
* `Vector#drop` returns `self` if `n == 0`
* `Vector#take` returns `self` if `n >= @size`