Problem one of the 99 lisp problems

last element of a list.
Problem 2 of the 99 lisp problems.

Had some problems here working out what was going on with memory and
pointers and references.

Short answer: our `last_but_one` function takes as it's argument, a
reference to a Vector (defined by the &). This means that ownership of
the list is not passed to the function and therefore the lists
destructor will not be called when the function exits.

we then clone the vector into a new mutable
list (http://doc.rust-lang.org/master/std/clone/trait.Clone.html). This
copies the list pointed at by our reference into a new list called
mylist which we now own and can do whatever we want with and will be
destroyed when this function returns.

So we reverse it, which is an in place operation (and requires a mutable
list).

This allows us to get the second element (1, zero indexed), get()
returns a reference to the second element in the list. Which we
dereference (with *) and return (by omitting the semicolon as it's the
last line of the function).