Update job document if it already exists

Apparently, I have not understood yet how the MongoDB, respectively
Mongoid update mechanism works. If I use .create! on attributes, which
theoretically map to the same object, it is not updated to the new
value. What works for now is to try to fetch the job document and use
.update_attributes if it already exists and .create! otherwise.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Display labels to reflect the job status

I have added another label to display if a job is finished. I think this
helps a lot to understand what has happened in the scheduler view. The
labels are now updated accordingly. Currently, I use a function to
simply update all jobs to completion if they are finished.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Convert Sidekiq shell script into bash script

I have added a separate Sidekiq configuration for the development
environment which does not start the Sidekiq process as a daemon
and does not use a logging file. For this I have also converted
the shell script into a bash script.

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

I have adopted the helper modules convention to name the submodules with
the postfix helper instead of the namespace/resource names.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Add Mongoid plugin for indifferent hash access

There is a useful plugin for Mongoid which allows, after declaration,
that hash fields are accessed indifferently. It does matter whether you
pass a string or a symbol and since I prefer symbols I added it to the
gems.

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

The last updated field for a repository's metric field is not set and
displayed appropriately in the scheduler view.

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