added a README in case LetkuOS is ever published
The beginnings of a memory manager

Memory is the part osdevving I personally know the least of, so there might be bugs in the code and inconsistencies in the documentation.

The physical memory manager currently does the following things:
1. Figure out how much memory (upper memory, specifically) there is and where is it. Panic if it's not contiguous
2. Figure out how much memory is needed to store a singly linked list of all available upper memory (forget about the rest)
3. Store the linked list mentioned in #2 right after the kernel
4. Reserve the space used by kernel and memory manager using kmalloc

Also, there is a kmalloc, which more or less works for reserving the next memory area without checking if it's reserved or not. Naturally it has no error checking of any kind at the moment, but we'll get there.

Next up: kfree(), and a kmalloc that truly utilizes the next-fit singly linked list paradigm.