implement file mover

it still can be subject of a race condition, when an array of same file names is uploaded
remove rename file race condition with a recently used file names cache