seed random with a real random data

The way random was seed was predictable.  This does not fix it, but makes it better and standardizes the process across domains.  I will be looking to use random bytes more often in the code base.  

Randombytes started life: https://github.com/ultramancool/tweetnacl-usable/blob/master/randombytes.c thank you @ultramancool and tweetnacl/djb guys. 

open() returns an int