MCOP-67 make runall work with compound filters

... by munging the compound filter array to sandwich the user-specified filter inside an and'ed "puppet.enabled()==true" filter

This would be a lot easier if there was a way to get the compound_filter (-S) string from the client, but there doesn't seem to be... it's converted into a filter array by the Matcher before we have access to the client. So, the best I could come up with is to do some rather unsightly array munging on the compound filter array.

This performs the equivalent to sandwiching the user-specified filter between "puppet.enabled()==true and (" and ")"
The length of the hashes make this line a bit hard to read. For simplicity's sake, could we turn the insert into 3 unshifts and multiline the structures?

f.unshift("fstatement" => { 
                "operator" => " == ", 
                "params" => nil, 
                "r_compare" => "true", 
                "name" => "puppet", 
                "value" => "enabled"}})
f.unshift(....)
f.unshift(....)
f.push({")"=>")"})