Decoupled searcher app from hard-coded models.

The searcher app now looks at all apps that implement
the 'search.py' module.

If the app has that module, it must implement these functions:
    get_content,
    get_desc,
    get_objects,
    get_targets,
    result_args

If the requirements are satisfied, the app's models will be searched.
The search can be disabled per-app by putting `disabled = False` in
the top-level of `search.py`.

If the app fails to implement any of the must-have functions, it is
skipped.