General http methods for api interactions

Added post/get/delete/put api wrapper methods to `Session` and refactor existing functionality to use them.

Fixes #14 by adding an `editMessage` method.