Add GenericHashAlgorithm

Adds ```Sodium.GenericHash.GenericHashAlgorithm``` implementation of ```HashAlgorithm``` that is suitable for hashing a ```Stream``` of data.

Fixes #90.
Mono doesn't seem to like ```this.hashStatePtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SodiumLibrary._HashState)));``` because it can't find ```SodiumLibrary._HashState```.