Data.Bits: bitSize -> finiteBitSize
guard finiteBitSize with MIN_VERSION_base(4,7,0)
Merge pull request #2128 from Heather/bitSize

Data.Bits: bitSize -> finiteBitSize
Use 'dropWhileEnd' and 'takeWhileEnd'.

'[drop,take]WhileEnd p' is semantically the same as 'reverse . [drop,take]While
p . reverse', but more efficient and easier to read.
Use 'Char.isDigit' where appropriate.
Rename '[take,drop]WhileEnd' to '[take,drop]WhileEndLE'.

And move to 'D.S.Utils'.
Comments.
GhcOptions.mappend: use `ordNubRight` where appropriate.

Some Cabal API clients apparently use `foldl mappend` on large lists of
GhcOptions records. Fixes #2110.
80-col violations.