Adding Hash() and Random() to the crypto libraries

A function, Random() has been added which takes as input a number,
indicating the number of random bytes to produce as output. Random()
returns that volume of random data, and any errors that occured in the
process of random number generation.

Additionally, Hash() has been added, which takes as input a byte slices
and produces as output the sha256 hash of that byte slice.

Finally, an error in the package declaration has been fixed, changing
the declaration from 'package common/crypto' to 'package crypto'
Updated Entropy functions to use common/crypto

Entropy functions used to define their own random number generator and
entropy sources, now they rely on the common/crypto libraries.

EntropyBytes() has been renamed to EntropyGeneration().

DRNGSeed() has been changed from operating on a block to operating on a
slice of Heartbeat updates. This makes it easier for the block to order
heartbeats before calling the function, and removes a bit of complexity
from the DRNGSeed() function.

entropy_test.go has been updated to reflect all of these changes.