introduce Enum.reverse/3

introduce Enum.reverse/3

add test cases for Enum.reverse/3

fix typo

reimplement using reduce

Improve Enum.reverse_within/3

rename Enum.reverse_within/3 to Enum.reverse_slice/3