Merge cleanup raaz-hash

- hlint fixups and associated refactoring
- refactoring padLength and padding of sha hash family
additional constraints to make raaz work with criterion
Number utilities added in raaz-modular
Word128 with modular arithmetic
Using testBit instead of Shift in powModuloSlow
Added other higher Words
Storable added for Numbers along with tests
Merge modular integer routines

This is an initial merge of modular multiplication and exponentiation
of big integers of given size.
added rule to build tags
Added HasName
Using HasName instead of Typeable in raaz-benchmarks
Fixed Gadget and Cipher tests to use HasName
Added instances for HasName in hashes
Fixed raaz-hash tests for HasName change
Added HasName instances in raaz-cipher
Specialized ptr utils
Fixed raaz-cipher tests
Fixed raaz-cipher benchmarks
Merge HasName class

The generic tests need to print the name of the primitive that it is
testing. We were using the Typeable instances for many
datatypes. Unfortunately this does not work well with DataKinds. So we
have a special class for this and any instance of Typeable has a
default definition of its member getName.
Added flag to use kinds only for ghc >= 7.6