Implement request status loop

I have reimplemented the status loop started by the asynchronous JSON
request. By now I have no need for an anonymous function anymore, since
I do not check the status for one repository, but now always for all.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Determine job state to select bar type

In order to differ between the two currently displayed progress bars I
have added more code. For this, I also renamed the state values as set
by the worker.

There is a problem with the repository names and using them to identify
the progress bar via its CSS class as dots are possible inside a class
name but require escaping. To circumvent this problem I now replace dots
with hyphens.

If the worker is in the state compute, the analyze progress bar can be
filled up as the states follow each other sequentially.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Refactor administration control panel JavaScript

Just added some more functions and comments to improve the overall
structure of the JavaScript file used in the administration control
panel.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Move button creation into helper method

Similar to the progress bar element I am creating the button now inside
a helper method, too. I have done this as I need to fetch the button per
repository and metric as well.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Disable button if computation is in progress

In order to prevent the instantiation of multiple Sidekiq jobs for the
same repository-metric pair I disable the buttons for issuing a new job.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Assign click event to the compute all button

This commit finishes more or less the administration control panel. The
compute all button has now a functionality as well. Besides that I have
renamed the constant storing the metrics identifier.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>