Make sure that GetRandomBytes never fails

We're using GetRandomBytes in several contexts where it's either
unwieldy to return an error, or an error would mean a fatal exception
anyhow.

@gmaxwell checked OpenSSL a while ago and discovered that it never
actually fails, but it can't hurt to be a bit paranoid here.
Adding license.
Adding const.
Merge pull request #5249

38c62ae Adding const. (sinetek)
Merge pull request #5239

65e3a1e Make sure that GetRandomBytes never fails (Wladimir J. van der Laan)
Merge pull request #5246

a8a5e01 Adding license. (sinetek)