Ability to assign weights to queues.

When using multiple queues it is now possible to pass a weight for each queue
in the form of -queues=hight=2,low=1 which would result in a job being selected
at random from [high, high, low]
If no weights are provided queues are processed in the strict order they are
provided. e.g. -queues=high,low would result in the queue high being checked
first and if no jobs are present then we would check the queue low.

Fixes gh-4