fix: make CostModel::from fallible via TryFrom<Vec<i128>>
The infallible From<Vec<i128>> was a footgun: 15.0.3 built malformed Int silently for out-of-range values; the interim 16.0.0 work tightened that to a panic. Both are wrong at a public boundary, so replace with TryFrom<Vec<i128>> returning JsError on overflow. Internal call sites (tx_builder_constants, fakes, tests) use .try_from(...).unwrap() since their values are compile-time known to fit. Tests assert the error path; the panic test is gone.