fn add_limbs(a: &[u64; 4], b: &[u64; 4]) -> ([u64; 4], bool)
Adds two 4-limb numbers, returning (result, carry).