MetasploitDataModels::Search

[MSP-10016](https://jira.tor.rapid7.com/secure/RapidBoard.jspa?rapidView=84&view=detail&selectedIssue=MSP-10016)

Backport `MetasploitDataModels::Search` from GREAT #1 (specifically the feature/exploit branch as it was the latest version from GREAT #1) so that `Mdm::Host` and `Mdm::Service` can be searched using the new search system.

If you want to understand how I preserved the history of the feature see this [blog post](https://limhoff-r7.github.io/git/2014/06/14/preserving-git-history-when-backporting-features/)