Comparison primops return Int# (Fixes #6135)

For a deatiled discussion of this changes please visit the wiki page:
http://hackage.haskell.org/trac/ghc/wiki/PrimBool
Use primop wrappers instead of tagToEnum#
Add GHC.Records with implementation of `Has` class
Introduce type family on Has typeclass and proxy argument on getField
Support lenses and simple update
Type-changing update