Push manuals into the search index

In the medium term, the search index will automatically be populated when they
are published to Content Store via the Publishing API. For now, though, we need
to push them directly. The same transformation we perform will need to be
performed in the code which populates the search index, so this code may be
reused.
Memoize the result of PublishingAPIManual.to_h

We're calling it multiple times, but it should always be the same, so let's
cache it.
Push sections to Rummager

Like manuals themselves, this functionality will move to a component downstream
of Content Store, but for now we need to implement it here.
Memoize PublishingAPISection#to_h

We're calling it multiple times and it does some non-trivial work.
Move helpers to gds-api-adapters

They were generic and reusable.
Link to the manual in a Rummager section

This will enable searches scoped to just the manual.

Added a base class to reuse some code.
Merge pull request #69 from alphagov/push_to_rummager

Push to rummager