Split functionality into separate files and use LoadDLL and friends

This has been "tested" in the sense that the few tests that were created for using the new LoadDLL function passed the tests and succeed in polling the data retrieving accurate data. I am *assuming* that the other functions work as advertised as well. This has not been confirmed. I'm still some ways away from using this fork for my own project.

If you want to test this and let me know what you think? I would rather make this to where you'll use it upstream instead of managing a separate fork.