Express all conditionals in terms of the primitive IfElseNode

This feels like a cleaner way to do it, and presumably any optimization
of the AST is going to happen before it hits the interpreter.

Fleshes out the tests for conditionals to make sure our bases are
covered.
Implement and test Unless and UnlessElse
Merge pull request #16 from tsibley/conditionals

Express conditionals in terms of IfElse primitive and add Unless and UnlessElse