Use random root password if not set
If no root password is set generates a secure random password rather than using a hardcoded password. The generated password is printed out when generated and again in the final message on script completion.
This avoids the possibility of a server being attacked due to using a known hardcoded password.
Uses openssl rand
to generate the password. openssh currently depends
on openssl, so it should already be available, but this adds an explicit
dependency on openssl just in case.