a little extra lists functionality

To better emulate Python lists:
- `len(list)` is O(1).
- set elements by `list[n] = val`.
- handle range slices: `list[start:stop]`, but not stepped slices like `list[start:stop:step]`.
- `list.append(v)` (and `.extend`) grows on the right, not the left.
- Emits `IndexError`, like python lists.