rewrote & implemented all API calls

Restructured to be more of a wrapper and less of a client. Should allow
for more “pluggability” into other apps like web apps. Removed all
caching functionality so that developers can decide what to do with the
tokens.