random: added a random driver interface

how should this be designed?

I see this PR as a discussion forum for this long standing discussion
Does a board need to provide a fallback implementation if it doesn't have a source of randomness?