free: Clean up scale_size and fix `free -h --si`
- Simplify control flow a bit. We don't need two loop variables, either.
- Consistently use
%lld
for bytes. - Fix the base handling for human-readable output. The code used to calculate mebibytes first, then scale that to the required exponent with the selected base, which is patently wrong.
Fixes #133 (closed)