You will have a linked list of `Target` named `Field`.
You will handle recursive types and ownership and implement the following **associated functions**:
-`new`: which will initialize the `Field` with `head` set to `None`.
-`push`: which receives a `Target` and add it as a `Node` at the head of the list.
-`pop`: which returns the last added `Target` wrapped in an `Option` and removes it from the list.
-`peek`: which returns the last added `Target` as a reference wrapped in an `Option` but do not removes it from the list.
-`peek_mut`: which returns the last added `Target` as a mutable reference wrapped in an `Option` and also do not removes it from the list.
You must also implement a type named `Link`. This will be the connection between the `Field` and `Target` structures. This will be a recursion type, and it must point to `None` if there is no `Target` to point to.