Implement and test user data option instance_reboot_timeout, to control reboot timeout used by Instance in master.py.
Implement and test user data option instance_state_change_wait, to control amount of time waited by by Instance in master.py for state to change before attempting reboots.
Implement and test user data option instance_reboot_attempts, to control number of reboot attempts by Instance in master.py before terminate.
Implement test case for giving up on instance termination. Change logic so that REBOOT_COUNT_THRESHOLD & TERMINATE_COUNT_THRESHOLD are handled the same (TERMINATE_COUNT_THRESHOLD now represents number of attempts minus like REBOOT_COUNT_THRESHOLD, not number of attempts - 1).
Implement and test user data option instance_terminate_attempts, that tells Instance how many failed termination attempts are allowed before just removing the node.