Implementing some more lessons learned from years of using and working in these libraries.
- "value" does not really make sense; this is always "satoshis". Extra confusing as satoshis can be quite close to XEC. Although the type "number" is ok, since the supply of satoshis is below JS max safe number, it is nice to use bigint since we then know it should always be an int.
- "amount" also ambiguous. Is it the decimalized amount? or base tokens? what are base tokens anyway? We introduce "atoms" to describe the smallest unit of a token. Implement, also bigint instead of string (string is confusing as decimalized amounts are usually a string).
We combine the change here since it is a breaking change and it is nice to do it all at once.