made conditionals dependent on list

This allows iflet to use flat. I'm going to have to move much more of this
dependency code around.
alf -> aif
lf -> if
added tests for conditionals