Consider merging gitlab-workhorse functionality back into gitlab-ce once Puma and Rails5 are mandatory

We use gitlab-workhorse to offload a range of expensive requests out of Rails. With the introduction of rails 5 and puma, the argument for doing so is diminished. The introduction of Gitaly also means that a lot of complex and expensive operations in workhorse have been reduced to simply proxying the contents of a Gitaly RPC call.

Having workhorse as a separate component isn't free, so once we have a multi-threaded rails application server, we might want to consider merging certain calls / features straight back into Rails, to make it easier to work on them. Rails 5 means we could merge websocket-handling code back into Rails as well.

In this issue, I'd like us to consider the costs and benefits of making this change, and whether there is any workhorse functionality that we couldn't merge back into a rails5+puma stack without substantially increasing resource usage.

cc @jacobvosmaer-gitlab @gitlab-org/maintainers/rails-backend

Edited by Nick Thomas