Fixed bugs and cleaned up the SDK a little to improve the overall quality of it.

*Fixed SifRpcGetOtherData() - Semaphore initial value was 1 instead of 0.
*Fixed SifSetRpcQueue(), as the queue's end will not be found properly after the first RPC server is registered.
*Fixed the DMA alignment structure of libcdvd. rom0:CDVDMAN uses 16-byte alignment, while rom0:XCDVDFSV uses 64-byte alignment. Since this library seems to have been largely based on rom0:XCDVDFSV, I've opted to go with the larger 144-byte structure instead (64-byte alignment).
*Cleaned up SifIopReboot(). The original version by Sony allowed the programmer to do things during the IOP reset. FlushCache() is not needed at all, and this function is meant to be used for reseting the IOP with a command line (NULL should never be specified, like in the original Sony function).
*Removed SifResetIop(). This function was originally deprecated, and is not even part of the Sony PS2SDK anyway.
*Fixed fileXioChstat() in fileXio on the EE. Send buffer size passed to SifCallRpc was incorrect (12 -> 520).
*Fixed sizeof parameters for the calls to SifCallRpc() within fileXioIoctl2() in fileXio on the EE. It was sizeof(struct devctl_packet) instead of sizeof(struct ioctl2_packet).
*Implemented fileXioIoctl() in the fileXio libraries on both the EE and IOP. Like the Sony documentation states, the first 1024 bytes of data pointed to by the arg argument will be copied onto the IOP and passed to ioctl() there.
Disabled the password check in the APA driver (HDD.IRX).
Fixed the Protokernel check. The new check is the same as the one used by Sony.
Fixed the Makefile of ee/sbv.
Fixed compilation of sbv/patch_protokernel.c.
Fixed the dread() function of the SMB server. Filename was not NULL terminated.
Updated dev9:
*Replaced some of the definitions with their equivalents in the PS2SDK (From intrman.h and dmacman.h).
*All requests to the DMAC now go through DMACMAN. Sony doesn't do this, but it's probably good practice to do so.
*dev9DmaTransfer() no longer blocks with a semaphore. The reason why Sony never used a semaphore was for performace reasons: Throughput takes a huge hit when a semaphore is used, because thread-switching on the IOP is slow.
*Added Sony-compatible protokernel patches and updated the CRT to run the whole patch automatically. Please help to test!
*Removed sbv_patch_protokernel() from libsbv.
*Added an include of stdio.h into iopcontrol.c to silence warnings.
*Forgot to add kernel/src/libkrnlupd.c and libkrnlupd.S: Files added.
*Optimized kernel/src/osdsrc/ExecPS2.c a little.
*Fixed the Makefile of kernel/src/osdsrc to allow it to compile on incomplete PS2SDK installations.
Fixed more paths within the Makefile of kernel/osdsrc.
*Unified the libcdvd implementations in both the IOP and EE.
*Standardized all function and names, making them Sony-styled.
*Still a WIP, functions may be missing.
*Fixed sceCdReadDVDV(), which was bugged in the original Sony function as well.
*Removed ee/rpc/cdvd/include/libcdvd.h, replacing it with common/libcdvd.h.
*iop/kernel/cdvdman.h will automatically include common/libcdvd.h.
*Please help to test!
*Added missing functions to iop/kernel/ioman.h.
*Fixed all projects that were broken by the earlier update to libcdvd.
*Removed the call to sceCdMMode() in Audsrv. That function is evil.
*Fixed building of kernel/src/osdsrc.c when bin2c is not built.
*Reverted changes to libcdvd on both the EE and IOP.
*Retained changes to iop/ioman.h.
*Updated ee/libgs to use kernel.h and to use SyncDCache() instead of FlushCache().
*Updated the fields in osd_config.c and osd_config.h.
*Added i.Link drivers: iLinkman and IEEE1394_disk.
*Cleaned up the structures in ee/kernel/osd_config.c.
*Added NETMAN.
*Added LWIP v1.4.1 ports for the IOP and EE, which uses NETMAN.
*Fixed up the old LWIP v1.3.1 port for the IOP, based on what I remember that was wrong with it...
*Added the new SMAP driver, which uses NETMAN.
*Fixed directory structures of iLinkman, IEEE1394, NETMAN (EE and IOP) and SMAP.
*Attempted to (re-)add the files that were not committed.
*g_RomName has to be initialized, my bad. :(
I'm still not really sure why that would screw up the heap anyway, even before it gets used.
But either way, the functions that use it expect it to be NULL-terminated, hence the need for initialization.