Port Data.Bits from Haskell

1. Added class `Bits` in Data.Bits
2. Removed bitwise operations from Integral
3. All the usages of existing bitwise functions are replaced with these new functions
4. `even` and `odd` functions are still in Integral but they don't have default implementations. They are implemented in respective instances using `.&.`.

@Ingo60 Could you please review?