Add function for size-checked conversion of Integral types

Summary: This function provides a similar functionality to fromIntegral but adds validation that the argument fits in the result type's size.

Test Plan: Validate, add tests from int-cast

Reviewers: austin, hvr, ekmett

Subscribers: thomie, carter

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

GHC Trac Issues: #9816