Raise a (meaningful) exception if no machines available to schedule.

Also, add a slot in the assignments dict for the new machine on
add_machine().