List#each, #map, #flat_map, #take_while, #drop_while, #each_chunk return Enumerator if called with no block

This corresponds with the behavior of core Ruby collections from Ruby 1.9 onwards.
Small tweaks/refactorings to internals of Vector
Added Vector#slice. #[] can take index,count or a range (just like Array)