[WIP] try_malloc(), verbose_try_malloc(), and more removal of unnecessary OOM error handling code

Other highlights:
 - Reimplemented xmalloc() using try_malloc()
 - xmallocz() is not static anymore.

See individual commit messages for more details.

This is a WIP anyone can start reviewing commit by commit (easier this way). I'll be pushing more commits that remove OOM error handling here.