Fix some -Wsign-compare and -Wsometimes-uninitialized warnings on Android and OS X

This PR fixes the following warnings (but not all warnings) I see when building Firefox for Android (gcc) and OS X (clang):

```
src/prof.c:1070:11 [-Wsign-compare] comparison of integers of different signs: 'int64_t' (aka 'long long') and 'unsigned long long'
src/util.c:179:55 [-Wsign-compare] comparison of integers of different signs: 'uintmax_t' (aka 'unsigned long') and 'int'
src/util.c:180:60 [-Wsign-compare] comparison of integers of different signs: 'uintmax_t' (aka 'unsigned long') and 'int'
src/util.c:181:60 [-Wsign-compare] comparison of integers of different signs: 'uintmax_t' (aka 'unsigned long') and 'int'
src/util.c:551:35 [-Wsign-compare] signed and unsigned type in conditional expression

src/util.c:502:5 [-Wsometimes-uninitialized] variable 'val' is used uninitialized whenever switch default is taken
src/util.c:512:5 [-Wsometimes-uninitialized] variable 'val' is used uninitialized whenever switch default is taken
src/util.c:521:5 [-Wsometimes-uninitialized] variable 'val' is used uninitialized whenever switch default is taken
src/util.c:530:5 [-Wsometimes-uninitialized] variable 'val' is used uninitialized whenever switch default is taken
```
For the -Wsometimes-uninitialized warnings from `GET_ARG_NUMERIC()`, I would prefer to just make `not_reached()` abort unconditionally (instead of checking `config_debug`), but that would be a more controversial code change. :)