Refactor `tail` function

Tail now returns the rest of the list instead of the last item. It is a
common idiom to split a list into a head (first item) and tail (rest of
the list), especially when using recursion. This change supports that
use case.

Fixes #25