Random fit algo

Implement and add unit tests for naive scheduling algorithm. First filter the agents to match the container configuration and than just randomly choose one. 

Constraints for now:
- cpu
- memory
- volumes

@peterbourgon @bernerdschaefer  @jmyounker  @soundcloud/iss  
I was not quite sure what is the expected behavior if any container can not be scheduled. I am confused about the notion "job" in this context. If some agent is lost, I guess that the configurations on it should be rescheduled on another agent. If for instance one of the configurations can't be run, does this mean that all of them should not be started even they are totally independent?