mp/tk/refactor_search

Refactor Search: Split up searching types. Search algorithm cleanup. Implemented searching types EXCEPT basic.

Not quite done as nothing has been tested but the idea of the architecture is in place and is in a 100% better spot than previously so merging