Use a mapfile instead of labels.json; object dependency handling

Instead of adding labels to globals.asm each time a file is preprocessed, leave it up to the project preprocessor. This saves significant time on first compile for pokecrystal and pokered (at least 20 seconds on slower machines).

pokemontools/scan_includes.py is borrowed from pokecrystal.