Metasploit::Model::Search::Operator and Operation Groups

[MSP-10637](https://jira.tor.rapid7.com/secure/RapidBoard.jspa?rapidView=84&view=detail&selectedIssue=MSP-10637)

`metasploit-model` had support for union operators and operations, but not intersections because previously, all operations that needed to intersect had separate operators, which were automatically intersected.  The need for intersections of the same operator came about for the use in the `os` operator for `metasploit_data_models`.