Cutting down the number of platform checks

I've been meaning to cut down on the number of these because they are super
slow and wasteful. Some of them are dead and can be removed without

Some of them are used inconsistently, like HAVE_STRING_H. Do we really
support any platform that lacks a <string.h>? All of Errno.cpp is in an
ifdef for this macro, but I suspect we include string.h elsewhere

Is everyone OK with eliminating checks for headers and symbols that we use
unconditionally anyway? (assert.h, mempcy, etc)

Sure. Preapproved if you feel the need for autoconf. Let me know if
you need/want help regenerating.