Add Orm_Behaviour_Searchable::init_relations() to delay the creation of relations

For example, in bootstrap.php:

\JayPS\Search\Orm_Behaviour_Searchable::init();
\Event::register_function('front.start', function() {
    // add models you want to use in your search and that are used in your template before your search enhancer
    // for exemple: noviusos_page::model/page

    \JayPS\Search\Orm_Behaviour_Searchable::init_relations('noviusos_page::model/page');
});

And then later, juste before using find() on a model:
\JayPS\Search\Orm_Behaviour_Searchable::init_relations(); // for all model
\JayPS\Search\Orm_Behaviour_Searchable::init_relations('noviusos_monkey::model/monkey'); // for a specific model
Add Search::generate_keywords()
Add a $_primary_key in Model_Keyword to remove errors

This should also add the possibility to do:

        for($i = 1; $i <= count($keywords); $i++) {
            foreach ($item->{'jayps_search_word_occurence'.$i} as $k => $keyword) {
                d("$k, $keyword->mooc_score");
            }
        }

But there is a problem with Model::cached_object in Query::hydrate() that reuse objects