Tab completion helpers

MSP-9007

Allow direct setting of
`Metasploit::Framework::Search::Query#formatted_operations` so that
shell splitting can occur in msfconsole.  Allow removal of all
operations on a given operator so that operation being tab completed
will not be restricted by previous operations using the same operator.
Without removing the operator, the tab completion would only return the
pre-existing value because the pluck wouldn't be properly unioned with
the pre-existing values as is the case when a full operation is used.
Fix union operations without values

MSP-8986

`Metasploit::Model::Search::Operation#parse` was passing the formatted
value as `nil` if the formatted operation did not contain a ':', but the
union operator can't handle that and should have to, so pass '' and
treat '<formatted_operator>' the same as '<formatted_operator>:'.  For
union operations, the children weren't being validated, so processing
was continuing when it shouldn't.
Exclude nil from architecture attribute sets

MSP-8986

`nil` should not be in sets because nil isn't a valid value for search
since '' is always parsed as '' and not cast to `nil`.