Extract Search index updates to separate module

Instead of relying on ActiveModel callbacks which are incompatible with
Sequel