Linker functions

We can run functions automatically during kernel initialization.  If you
want a void foo(void) func to run, write it like this:

	linker_func_2(foo)
	{
		bar();
	}

The functions will run in any order within a level, and lower levels
will run before higher levels.
Use linker functions for NIC and medium pre-init

I picked levels 3 and 4, so it'll be easier to use the lower levels.  We
can always add higher levels as needed, but adding additional lower
levels will require changing exist call sites (e.g. all linker_func_3
need to be incremented).