Rewrite 'if' to be recursive instead of table-based.

Will allow #7 to be solved in a better manner.

cc @gmalette 
Do you mean as opposed to having `nil` or to having just a general purpose null object?