Prevent ints from wrapping around in scratch space functions
Summary:
- Add check preventing integer multiplication wrapping around in scratch_max_allocation
- Add check preventing rounding to alignment from wrapping around in scratch_alloc
- Use ROUND_TO_ALIGN in scratch_create
- Don't assume that ALIGNMENT > 1 in tests
This is a backport of secp256k1 PR648
Test Plan:
ninja check-secp256k1
Reviewers: #bitcoin_abc, jasonbcox
Reviewed By: #bitcoin_abc, jasonbcox
Differential Revision: https://reviews.bitcoinabc.org/D7608