Adding first pass on canRun api in worker impl

Moving canRun check into worker to deal with query type specific logic
Simplify SPI

Reduce SPI to CriteriaSearch and Simple
Create util module to house shared code, SPI impls shouldn't need to depend on core