Do not fail on error in judgehost poll loop, but just keep retrying.

This restores the approximate behaviour from the pre-API days, where
a failure to connect to MySQL would not lead to a judgedaemon crash
but would be retried until it works again.

In this implementation we only ignore errors in the poll loop when
the judgehost is idle. This is the most common state for a judgehost
and will not make all judgehosts crash if you need to restart Apache
or MySQL.

If a judgehost encounters an error when using the API as part of the
judging process, it will still crash. This seems the safest option.
Restarting the judgehost after such a crash will probably resolve
this state.
Fix comment typo.
Don't try to install affiliation logos: these have been removed
in ecd19691f9.
php-geshi no longer needed.
Upgrade spyc to 0.5.1.
Add basic composer.json metadata file.

Do not use composer for dependency management just yet; our only
external lib is currently Spyc and the results are quite ugly.
Add config check for maximum upload filesize.
Add JavaScript language support (via node.js)
Note in ChangeLog that JavaScript has been added as a supported
language. Thanks Matt Steele.
Use unzip/zip instead of ZipArchive class.

The php ZipArchive class lacks support of setting executable bits.
Suggest to increase number of processes when the JVM runs in an OutOfMemory error.
Remove duplicate code to calculate bytes from php ini values.
Specify type of executable when uploading.
Cleanup executable code.
Use 'mktemp -d' instead of abusing mkstemps to create tempdir.
Add printtime() around activatetime output.
Expose cid in problem dropdown.

In case you have multiple contests with (more or less) similar names.
Add extra check to ensure team is really enabled in submit_solution.

This should be handled on the authention part so this is an extra
defense in depth.
Add API endpoint to make a submission.

This requires the user to be authenticated in a team role.
Handle API errors differently.

We can skip the HTML formatting and more importantly, add a HTTP
status code so clients will know that something is wrong.