disco util: Introduce weighted_select_items.

This function will randomly choose some of the nodes in the list based on
their weighted index.
ddfs master: Randomly choose the replica locations based on the node weights.

The more free space a node has, the higher its probability of hosting a
replica.  This is preffered to having a deterministic method for always
choosing the nodes with the most free space.

The deterministic method puts a lot of new data into a small subset of ndoes
and increases the contention for putting the computation on this subset of
nodes.
ddfs master: Add the option of using the write nodes totally randomly.
ddfs master: normalize the disk utils before selection as replica host.