Tests directory cleanup and compilation from C

I've copied over the tests from tests/ into tests_new/. Then I organized them in a way that makes a little bit more sense and added a test generator from source for multiple architectures.

The next step is comparing function ID for different static engines (I saw your wiki page). Now that we have a decent way to generate test binaries that should be a lot more straightforward. We should be able to get functions from DWARF, so I won't have the mistake of using symbols for that this time around.

There's a lot of ugly green here as I didn't want to mess up tests/ as it is, but if you're happy with this I can go back and git mv to avoid dirtying the commit history.