Change upload temporary file path generation to use crypto.randomBytes()

This should resolve an issue we encountered when using the Node cluster module, and two workers get forked in the same millisecond, get the same random seed, and the two processes' upload paths collide.
This also resolves the (somewhat confused) complaints of #247.