Add support for custom search document models.

MultisearchableModels can now optionally declare one or more document
models. Useful e.g. maintaining private and public global search indexes.

Added:
- document model generator w/ optional tsvector column migrations

Updated:
- PgSearch.multisearch('DocClass', query)
  PgSearch.multisearch(query) still delegates to
  PgSearch::Document.search
- MultisearchableModel.multisearchable('DocClass' => opts)
  MultisearchableModel.multisearchable({:against => :col}) still backed by
  PgSearch::Document
- PgSearch::Multisearch.rebuild(MultisearchableModel, clean_up, DocumentModel)
  PgSearch::Multisearch.rebuild(MultisearchableModel) rebuilds all document models
- PgSearch::Rebuilder.new(MultisearchableModel, time_source, DocumentModel)
  PgSearch::Rebuilder.new(MultisearchableModel) rebuilds all document
  models