Job shop scheduling with blocking and no-wait constraints