Split out big lib.rs into separate modules for each endpoint. Now using FFIResult in all functions requesting the API. Added unit tests for all functions. Abstracted file caching behavior into cache.rs. Uses temp files in tests