additional constraints to make raaz work with criterion
Specialized ptr utils
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
Made mode and direction a single datatype

This allows us to kind restrict types of cipher.
Kind restricted mode and direction in raaz-cipher

* Much better design to use kind restricted mode and directions in ciphers.
* Also got rid of Cipher type.
Fixed tests for HasName and Kind restriction in raaz-cipher
Fixed benchmarks for HasName and Kind restriction in raaz-cipher
Fixed raaz-random tests