Run sidekiq when running with bowl

Now with sidekiq workers, we need to run the App with foreman to run
sidekiq and the web when using bowl. This commit adds foreman and the
web worker to the Procfile.
Merge pull request #223 from alphagov/run-sidekiq-when-running-with-bowl

Run sidekiq when running with bowl
Add publish and withdraw permission check
Refactor document controllers to use permissions

This now only allows publishing and withdrawing by users with the
relevent permissions.
Use permissions to show/hide publish & withdraw

Users shouldn't be able to click publish or withdraw unless they have
the relevant permissions.
Testing new permissions workflow
Merge pull request #225 from alphagov/writer-access-permissions

Writer access permissions
Send manual slug to to rummager for manual sections

So that search results can be scoped to sections within a manual.
Merge pull request #226 from alphagov/send-manual-to-rummager-for-sections

Send manual slug to to rummager for manual sections
Move logic from exporter to PublicationLog

By encapsulating the logic for fetching change notes for a publication,
it's possible to reuse it with other exporters.
Merge pull request #227 from alphagov/refactor-manual-change-notes

Move logic from exporter to PublicationLog
Publish manuals to the Publishing API

The Publishing API will eventually replace the Content API.
Publish manual sections to the Publishing API
Publish manual change notes to the Publishing API

Change notes are added to the 'details' attribute on the 'manual'
content item, rather than being a separate content item.
Send manuals organisation info to Publishing API

The Publishing API has no concept of tagging just yet, so the organisation
association is stored in the 'details' attributes.
Access manual/section attributes using fetch

This means that if the attribute is missing, an exception is thrown
(rather a null being sent to the Publishing API).
Use production Organisations API except in test

In dev, we don't want to incur the cost of depending on Whitehall just for the organisations API.
In test, the organisations API stubs assume that the basepath is `Plek.current.find("whitehall-admin")`.
In preview, the client would have to handle simple auth so pointing to production is simpler.
Calculate manual update type from section update types

A manual update is major if there are any major section updates.
Merge pull request #222 from alphagov/push_manuals_to_content_store

Publish manuals, sections and change notes to the Publishing API
Introduce a Publishing Workers Layer

This commit adds a workers registry which allows us to call a worker
from the controller which in turn can call the services and perform them
asynchronously.

Also allowing tests to run as normal when creating  background workers.