Store sizes as unsigned.

All conversion and printing functions already assume handling an
unsigned but the type is still signed. A negative size of course makes
no sense. The only thing we are interested in is if its zero or more
(e.g. zero means not set so ignore the setting.) but a zero also fits in
an unsigned variable.