Move smalloc.h to utility/

One common header away from legacyheaders/.
Mostly mechanical replacement for the include paths, but removed a few
instances where the header was included more than once.  Also, reordered
the headers a bit, mainly in C++ files.

Part of #1415.

Change-Id: Ic438d501ebf5eccc285655a9e8f2f625eb12f1d1