Adds functionality for set-nth.

Issue #578 
`List` is a vector under the covers so you don't need this. `List` also overloads the `+=` operator so you can simplify this block down to

```c++
*result += l;
result[index] = v
return result;
```