add GetRandBytes() as wrapper for RAND_bytes()

- add a small wrapper in util around RAND_bytes() and replace with
  GetRandBytes() in the code to log errors from calling RAND_bytes()
- remove OpenSSL header rand.h where no longer needed
- move rand functions from util to new random.h/.cpp
The function can also return `-1` if `they are not supported by the current RAND method` (see https://www.openssl.org/docs/crypto/RAND_bytes.html). So I'd prefer `!= 1` instead to explicitly check for succes instead of not failure.