Restructure folders for Cargo
add cargo Manifest
Build with Cargo (mostly)

Because Cargo doesn’t support any compiler flags yet, we still compile
the final main.o together independently.
The two cargo dependencies are libcore and libnative, which can be
copied from the rust trunk into the appropriate directories. (See the
files indicated by the manifests)

Also, Cargo is still invoked from the Makefile. This is necessary to
link all the objects into kernel.elf with appropriate linker flags, and
to create the floppy image afterwards.

Also, this removes the previous recursive make setup, and allows for
building outside the source tree, which is nice.