Added functions to convert hexadecimal bytestring to binary bytestring.
some refactoring of endian store instances.
recommended blocks is at least 1 whatever be the cache size.
added an os based config selection.
failed cache guess now returns Maybe Int.
Merge avoid recommended from being zero due to small l1cache

- now failed cache size guesses returns Nothing instead of 0
- failed cache guesses are handled by a default value of 32K
- recommended blocks are at least 1.
Merge conversion from hex to binary
Added RSA Signing tests
Fixed performance issue with haskell AES
Added functions to do signing and verification
Merge RSA signing.
renaming cellLoad to cellPeek, fixes #176
renaming cellStore to cellPoke, fixes #176
Merge rename cellLoad/cellStore to cellPeek/cellPoke fixes #176

- This better reflects the naming because we are mainly concerned with
  Storable types and not EndianStore types.
Moved initialize and finalize to Memory from Gadget to new classes.
Added defaultCxt in Hash type class
Sha family of hashes fixed for change in memory interface
Fixed Blake for change in memory
Fixed Hash Tests
Fixed Hash Benchmarks