Change chashdatum.len to be declared as size_t rather than unsigned int.

This fixes a large number of type conversion warnings in 64-bit builds
where this value is assigned from the result of strlen (size_t).
Change uid_cache_item.size to size_t.

This fixes some type conversion warnings in 64-bit builds.  The value is
only passed to mailmessage_init, which takes size_t for that parameter anyway.
Change encode_base64 to take size_t as its len parameter.

This fixes some type conversion warnings in 64-bit builds.
Fix many implicit 32/64-bit data conversions.

This avoids type conversion warnings in 64-bit builds.

These are mainly use of strtoul for parsing uint32_t without casting
the return value, or use of int or uint32_t when size_t is more
appropriate.

There are three APIs that we interact with that aren't using
size_t (SASL, MD5, and zlib) so we cast in and out of those.
Merge remote-tracking branch 'tipbit/64-bit-warnings'