Refactor of code base

All methods now have the option to pass in method_version. Dynamic
keyword arguments for certain functions are now handled. More
comments/code documentation has been added. Added base classes for
interfaces inherit from to reduce the amount of code. Changed api_base
to appropriately handle all interface methods, and behave differently if
default format is provided.