Use shadow's random source when reading from /dev/random files

When creating a new shadow handle, check if it's from opening a file to either /dev/random, /dev/urandom or /dev/srandom.  If so, add shadow handle to list internal to the host.  Then when reading from file in shadow, if handle is in list, get nbytes from the random source and copy into buffer instead of performing read() operation on the file.
I would implement this function as follows:

```
void random_nextNBytes(Random* random, guchar* buffer, gint nbytes) {
    gint offset = 0;
    while(nbytes > 0) {
        gint randInt = random_nextInt(random);
        memmove(&randInt, buffer[offset], MIN(nbytes, sizeof(gint));
        nbytes -= sizeof(gint);
        offset += sizeof(gint);
    }
}
```