Implement and test user data option instance_comm_timeout, to control communication timeout used by Instance in master.py.
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.
Replace magic constants with named constants in cm/config.py.
Reduce code duplication in test_master_instance.py.
Improve treatment of condor_enabled / hadoop_enabled.
Fix for bug pointed out in PR 52 by @afgane.
Rework instance type handling to allow for dynamic instance types to be specified via user data. Implement tests for default instance types, a hard-coded special case (NecTar), and dynamic instance types.

Conflicts:
	cm/config.py