Modify the Create() call to allow unix_uids to be specified in the hash. If a unix_uid is provided in the hash, then we attempt to use that for the new account rather than using the "find unused numbers" sql query. If the given unix_uid is less than MIN_UNIX_UID or already in use then Create() will return undef.
If no unix_uid is specified then there is no change in Create() behavior, so this will not impact any of the code currently in the tree. The intent of this change is to allow Emulab admins the option of managing their accounts using data that is external to Emulab so you could have scripts that sync the list of active users to an external password file, LDAP server, etc. (For this to work, it will also require a way to turn off Emulab's builtin account creation tool and Emulab's sql schema may need to be modified to handle larger unix_uids -- current limit is smallint(5)).