First Commit
Ported over the Physical, Virtual and Dynamic memory managers from X3.
Rewrite for the VMM to allow allocating the virtual address space.

PCI and most Library functions ported. No major changes from X3 yet.
Ported Interrupt systems, as well as all Disk systems (Filesystem, ATA, PIO, etc)

Still no major rewrite.
Next steps:	Port BGA driver and switch to LFB output
			Fix Scrolling on resolutions other than 1024x640
			Rewrite scheduler and task switcher (no porting!)
			Finally, implement per-process address space.
Ported Console output via BGA device, scrolling quirk should be fixed.
Working multithreading. All in single process space, but ring3 should
be working.

WIP for mutexes.
Working multitasking (for real this time, forgot to commit the new files previously)
As well as user mode processes.

Mutexes (binary) are working, along with a scoped version.
Got to about the same stage as X3 now, plus the muteness.
Also the scrolling quirk.

A little thing in ATA/PIO fixed, doesn't call YIELD() anymore, config reads take less
time on QEMU and VBox.

Also, as expected, moved the main Kernel code into its own thread.
Added Remove() to List.
Also moved said List class to a template system, although that means the implementation is now in List.h and List.cpp is deleted.

Working well.
Created brand new String type.
Should work properly.
Added skeleton Map class, for use with the new ConfigFile system.
Gave up implementing a proper template-based map, too much fiddling
with all the pointer shit.

Implemented a SimpleStringMap that, as the name suggests, takes strings for both key and value.
Uses the new Library::Types::string.
Bug fixes all around, especially in the string class.
Also replaced the string::Strip algorithm with one that actually works.

More preliminary work done on the ConfigFile interface, now splits lines and
will ignore comment lines.
Added RTC driver, as well as a proper time implementation.
Nice little spinner and clock below the version.

Also need to relook at some code in PrintFormatted() that handles the width/precision
things, they constantly cause heap errors.
Fixed time functions some more.
Also set clock: sync=realtime on bochs.
Virtual Address Space per Process seems to work.
Simpler than expected. Most problems in the debugging stage involved
being too stupid to realise CR3 needed the physical address.

Thank froggey.
VAS per-process /really/ works now. Was too overzealous last commit.

Turns out the time update code fucks up the process's kernel stack too much.
Best to make the scheduler more robust (ie. executing processes which require a certain time interval) before stuffing the time back in.
Added a gitignore
Merged in logangorence/orion-x4 (pull request #1)

Added a gitignore
Proper gitignore.
beginning of linux makefile.
compilers not included. neither are batteries.