CDK-266: Use random UUIDs for unique file names.

This fixes the unique filename problem by using a randomly-generated UUID. Chances of collision are extremely low and this doesn't require any hacks to get information unavailable in the JVM, like PID. It does make file names longer, but not too much longer than the existing implementation plus more unique information. We can always truncate the UUID if it is too long.