Added a timeout to requests, to avoid blocking indefinitely in case the
server is slow/fails to respond.
If a file fails to upload with an I/O exception (e.g. timeout) do try to
upload remaining files (if any).

Log additional information (file size, time) for asset uploads.
Added separate log call for methods that do not have an instance. This
fixes the issue where "[Class]" is shown as the source of a log message
instead of the class name.
Updated log messages. Only catch I/O exception in case deleting a
version fails, instead of all exceptions. Added catch for I/O exception
in outermost method.
Changed implementation to use asynchronous http client. This enables
socket timeouts while sending data. If the server becomes unresponsive
while uploading a file the upload now times out.