Clarify slice failure conditions.

The current docs for `slice_from` say that it *fails when `start` points outside the bounds of self.* This is slightly misleading as slicing from the length of the vector, which corresponds to an index outside the bounds, still works and yields an empty slice.

I've made conditions like this more explicit in the slicing documentation, because it was ambiguous enough that I found myself writing a test file before using these methods. Then again, maybe I'm just paranoid.
Alternate phrasing for this line: "Returns a slice of self beginning at `start` and continuing to the end of self."

Seems a little weird, any other ideas?