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'.