Merge branches 'x-primitives' and 'x-hash-sha' to master

This cleans up some of the TH based code.
separate rule for fastforwarding all branches.
grand reorganisation of the raaz-hash-sha packages.

As a user you need to only import Raaz.Hash.Sha and nothing else. In
case you want the constructors you can use Raaz.Hash.Types.
removed the export of R.H.Sha.Instances fixed a warning
moved installation options to a variable
added a clean rule.
some reorganisation of Makefile
added raaz-executables to the list of packages
cleaning up sha1sum code
setting travis builds environment explicitly
removed unnecessary R.Primitive.Hash file
generalising block primitives.

Block primitives now have a context and process function. This makes
them capable of capturing a wider varity of crypto primitives
including hashes macs, ciphers etc.

The Raaz.Hash module has been suitably modified.
abstracting padding out of hash
added the bytesource type class
added generalised fillBytes that works with typesafe lengths
added the combinator withFillResult
added code to transform contexts.
refactored Hash module using changes to R.Primitives and R.ByteSource
hash-sha now uses the newer interface for Hash
updated to use the new hash interface