Fix #638: Make nth return default value when out of bounds

This PR fixes #638.

```hy
=> (nil? (first []))  ; no more IndexError
True
=> (nil? (nth ["a" "b"] 10))  ; nil by default
True
=> (nth (range 10) 100 "hi!")  ; with default specified
'hi!'
```

Docs/tests updated accordingly. Thanks.
@microamp you can go ahead with the first format