Handle Concurrent Publish Requests
As mentioned in #52 (closed) if we have concurrent requests to publish books then it doesn't make sense to process both of them.
Concurrent requests to publish would publish the same guides twice.
While a publishing request is in process any other publishing requests will fail with status 409 and an error message.
- Tests pass I've created tests for the new code, but existing tests are still broken. All tests are fixed in my other open PR so I won't duplicate that here.