Conversion to library

Branch that focuses on code changes that allow for system functions to become packaged into a C library.