Starting to implement eval()

Right now everything evals to the string "TO IMPLEMENT". Hey it is a
start.
Eval everything that evals to itself

The easy part
Implemented Clone for ASTNode

This is probably hella inefficiently copying things around but whatever
I'll optimize later when I understand references better. Also hopefully
Rust's documentation will be better soon too