_UNUSED is a stupid macro and I should just use __attribute__((unused)) directly.
This will never build on anything aside from GCC or clang anyways, since msvc is shit
that targets windows and armcc is proprietary and expensive.
Clean up includes massively; the mess was mainly due to common.h "abstracting" all
the dependencies, allowing me to be lazy and not properly componentize code. Now all
files include solely what they need, which is a step in the right direction of unfucking
all the cross-dependencies.
This would have been much more painful to figure out were it not for include-what-you-use
(https://github.com/include-what-you-use/include-what-you-use) so next time you dig your
grave into source dependency hell using a common header, try that tool.