Modularization and other fixes

- Temporarily disabled the resend packet code because transferring large files failed due to it resending packets wrongly.
- Cleaned up some of the debug messages and used a dprintf method which eliminates unnecessary calls to printf when in Release mode
- Calculate amount transferred while sending a file (useful for large files)
- Correctly calculate the size prefix and actual size
- Moved some functions to files which better suit them
- Added support for converting Windows-style paths to unix-style paths which allows for netbooting of windows preinstallation environments
- Internally keep track of the correct block count when the block count given to us from the bios overflows.