Fixed behaviour for negative i argument on lume.slice()

A negative value for the `i` argument of lume.slice() is now handled
properly (used as an index from the end of the string) to mimicing the
behaviour of lua's string.sub()
Added more tests for lume.slice()