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.