api overhaul. DO NOT MERGE

Major restructuring of how the API works internally.

Do not merge yet. I've left a lot of the methods blank. For now, let me know what you think of the new way of specifying API endpoints.
Shouldn't `data` be used later on, instead of `parse_args`? Or have you not converted this yet.