add error reporting when [if] is evaluated with no actions

I frequently make the mistake of using {IFVAR} but forgetting to
use [then] with it. One solution is to use my own macro, but the
better solution is to add proper error reporting to if. If the
engine parses an [if] tag with no [then], [else], or [elseif], it
should flag an error... otherwise these mistakes are generally
silent and very difficult to find.
When if misses its condition and doesn't take an action, this commi