Download multiple files with each rsync invocation.

This turns out to make syncs at least 3X faster.

It also allows for greater concurrency: having many short-lived rsync
processes casued issues with piled-up zombies, but the longer-lived
processes don't have this problem, so we can have more of them.

For simplicity, this also removes the "single get" special-case. Now a single get is just a multi_get (now renamed simply "get") with a cardinality of 1. 
uuid.uuid4().hex is preferable unless you want the dashes