Fix Vector operations which rely on #replace_suffix

The previous implementation would fail on Vectors of specific sizes.
Vector#rotate returns self for any rotation of a multiple of its size
Fix Vector#add (when Vector trie is 'full' and needs to be deepened)
Make sure Hash#map does not modify receiver
Update style of Vector#add spec, added more tests
Updated style of Vector#assoc and #rassoc spec
Updated style of Vector#bsearch spec
Updated style of Vector#clear spec
Updated style of Vector#combination spec, added more tests
Added another test case for Vector#<=>
Updated style of Vector#concat spec, added more test cases
Updated style of Vector#dup spec, added a test case
Updated style of Vector#delete_at spec, added more test cases
Added another test case for Vector#delete
Updated style of Vector#drop spec, added more test cases
Updated style of Vector#drop_while spec, added more test cases
Updated style of Vector#each_index spec, added more test cases
Updated style of Vector#each spec, added more test cases
Updated style of Vector#each_with_index spec, added more test cases
Tweaked Vector#empty? and .empty specs