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
I also think it complicates things, if we just return an error an let the caller decide what to do. The dependency we broke is that we don't need the OpenSSL rand.h in util.h (+ many others) and can replace OpenSSL rand.h in random.h by something better in the future. I also think logging is THAT basic, that every file should be able to do that. I have been thinking about a better place for the OpenSSL init, so that util.h doesn't need ANY of the OpenSSL headers (perhaps init.cpp/.h).

Anyway, it would be nice if this could be tested, reviewed so I can continue with other things :).