Throw an exception if size-in-bytes values are out of Long range

Fixes #170
Improve size-in-bytes parser's use of BigInteger/BigDecimal

 - use bitLength to see if we overflow Long
 - use BigInteger and BigDecimal to parse, instead of parseLong/parseDouble
Merge pull request #173 from typesafehub/wip/havocp-out-of-range-bytes

Throw an exception if size-in-bytes values are out of Long range