core: rename vec::rev_each{,i} to vec::each{,i}_reverse

I'm making this change because the _reverse suffix is more commonly
used in libcore/libstd.
core: add char_at_reverse
core: add char_len method
core: add str::each{,i}_reverse
auto merge of #5447 : erickt/rust/incoming, r=graydon

This normalizes the how we call reverse iteration functions. It also adds a char_len method, and a method to iterate backwards over a string.