added and and or to eval, finished writing do and added #f and #t to the parser

and and or were pretty simple to write, all I do is run through the cdr
of the expression evaluating each sexp, for and I stop at the end or the
first false value for or I stop and the end or the first true value.

do is a bit tricker and I'm suprised it was as simple as it was. I
create a new local scope just for the loop variable then just evaluate
everything else in that scope, and it works. I mean there's no real
reason it shouldn't but I'm just suprised there wasn't some issue with
something I haden't thought of. It could use a bit of syntatic sugar but
as it is it works which is what counts.