Add maxOperations config option, run uploads via async.forEachLimit if specified, otherwise run uploads using forEach
add encodePaths option for encoding destination paths