* bitmapC: Added support for pre-allocated memory being passed to a
	bitmap as its internal memory.
Updated nsource script with more features.
Improved loc and nsource scripts.
Improved loc and nsource scripts even further.
In general, changes to the way processes and threads are initialized have been
introduced in this patch, and will be completed over the next few patches.
These changes improve the design of thread and process spawning, unifying many
of the previously rogue aspects.

*bitmapC: Fixed possible call to memset with NULL pointer in constructor.
Decreased the IBM-PC __kspace size to 2MiB from 3MiB.

* bitmapC:
  * Fixed a minor bug where a NULL pointer could be passed to memset()
    and ensured that any preallocated memory is zeroed out before use.
  * Fixed a bug in the resizeTo() case for a preallocated internal array.
* hardwareIdListC:
  * Added pre-allocation support.
  * Removed __kspaceSetState().
  * No longer needs to use the (error prone) method of checking the lower 12
    bits of its array on freeing, because now it knows when the array is
    preallocated.
* Orientation:
  * Split orientation into __korientationInit and __korientationMain.
  * Re-arranged orientationInit in a major way.

* MemoryTrib:
  * Cleaned up __kspace initialization. Now it is mostly perfectly uniform.
  * Added an initialize() member which cleanly does the preallocation inits
    for internal members.
Kernel can now run to the end of heap init again.
* Began implementation of a LOGONCE flag for debug pipe.

* IBM-PC:
  * getBspId:
    * Migrated the code to detect the LAPIC paddr to lib LAPIC.
    * Fixed a potential bug in the event that getBspId is called twice.
  * i8259a:
    * IdentifyActiveIrq: Returns UNIDENTIFIABLE if the pin list isn't
      yet allocated.

* CPU Trib:
  * Implemented initialize() for internal members.
  * BSP CPU's ID and bank are now detected in getBspId(), before the
    main CPU detection stretch.
Cleanup from last commit
Subtle changes to the way CPUs are initialize()d and bound().
Work on processStreamC::spawnThread() and kernel prio classes.
Changed the prio class values a bit.
This patch mostly has the co-op level scheduler almost working. A lot of minor
details surrounding it, mostly blur.

* Changed taskContextS into taskContextC.
* Added body to taskContextC.
* Updated comments here and there.
* Implemented taskC attribute inheritance.
* Now cpuTribC::__kupdateAffinity() also updates the kernel process itself.
* Did some housecleaning in memoryStreamC::memAlloc().
* processStreamC::spawnThread() is now almost complete.
Thread spawning and pulling now works for the most basic use cases. Kernel
orientation officially split into Orientation Init and Orientation Main.

Kernel version about to be bumped to v0.00.010.

* x86-32:
  * ASM:
    * Added saveContextAndPullNewTask(void *sleepStackBaseAddr).
      This function saves the thread context of threads that are dormanted
      or blocked. Pre-emption requires different handling.
    * Added loadContextAndJump(taskContextC *tc).
      This function loads the context of a previously blocked or pre-empted
      thread.

* IBM-PC:
  * Increased the size of kernel stacks to 2 pages.
  * Set the size of userspace stacks to 8 pages.

* Sched:
  * Improved state tracking of threads; now threads have a runState and a
    blockState.
  * Threads no longer have a member taskContextC object, but rather a pointer
    to a taskContextC object on their kernel stack.
  * Implemented all the member functions of taskStreamC, taskC and processC
    which were required to get threads working.
  * CPUs now enter C1 when they have no work to do.

* InterruptTrib: Removed the IBM-PC specific EOI that was sent after every
  interrupt entry on x86-32.