Support Trace and Message payloads

This supports logging of `trace` and `message` payloads. The `Rollbar`class has been refactored into a client object, where you can invoke the different types of payloads using either `Rollbar.trace` or `Rollbar.message`.

cc @astashov
Hi, Brian from Rollbar here.

I think this may not be what you want. Is `metadata` metadata about the message, and `otherData` is data for the payload? Assuming yes, then I think you want `metadata` to be inside of "message". So the structure should be:

```json
{"body": {
  "message": {
    "body": message,
    "extra": metadata
  },
}}
```

(Here I used "extra" as the name of the key metadata is inside, but it could be whatever you want.)

The code as written appears to overwrite keys in the root part of the payload, which could cause problems if keys in `metadata` collide with names Rollbar understands (like "environment").