Use the new slicing syntax instead of method calls

This involved these transformations:

    .as_slice() => []
    .as_mut_slice() => [mut]
    .slice_from(from) => [from..]
    .slice_to(to) => [..to]
    .slice_from(from).slice_to(len) => [from..from + len]
    .slice(from, to) => [from..to]

The end result is briefer and arguably nicer, with no semantic change.