Search-System overhaul

Splitting search objects into dedicated tables, preventing some issues including potential performance bottlenecks if there is an uneven distribution of matching terms for various object types at once.