Refactor to avoid need for `Unicode.hs-boot`

This avoids the import-cycle caused by the import of `Foreign.C.Types`
by using `Int` instead of `CInt` for the Unicode classification
functions. This refactoring also allows to remove a couple of
`fromIntegral`s.

Reviewed By: rwbarton, ekmett

Differential Revision: https://phabricator.haskell.org/D328