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.
this `toLowerCase` seems unnecessary if the `_request` is used only by the public methods. Is there a case when this could be in uppercase?