ACCUMULO-2581 Create a WorkAssigner interface and implementation.

Move the DistributedWorkQueue implementation into its own class to allow
for an implementation that doesn't suffer from the same consistency issues.