device input, file system management, io scanning

Continued foundational work on the system, improviding base I/O, text
formatting, and file management. After this update, most basic device input
and output is complete with basic testing.

 - Added device input for reading files and devices.

 - String I/O objects work with the device input abstraction.

 - Fixed device output to respect end-of-stream signals.

 - Created basic scanning functions for reading formatted input

 - Implemented basic file system manipulation for checking file existence.

 - Added random math functionality.

 - Updated GIT ignore files.