Adding HTTP POST support to hal_client

This pull request adds HTTP `POST` support to HalClient.

An instance and convenience class method with the name of `post` has been added.

Unlike `get`, `post` takes an extra argument like so `client.post(url, data, options = {})` where data is `String` or `Hash`.