Fix more bugs in when/unless. Also, re-organize ARG detection.

Hello @azulus, 

Please review the following commits I made in branch 'nick-when-3'.

f33d20bf4e42f716b3241033e073323bcbda308d (2013-05-31 16:02:39 -0400)
Fix more bugs in when/unless. Also, re-organize ARG detection. 

R=@azulus