Changes from Baobab Development

There are a few new features and bug fixes in this branch, including:
- the Inbox App ID is exposed in addition to the BaseURL
- updated attachments logic: attachment JSON is now returned in the request for messages, so attachmentIDs -> attachmentData (similar to tagData on threads)
- tag interactions are now supported on threads
- you can fetch the drafts of a thread in addition of the messages of a thread
- preliminary support for downloading attachments (via https://github.com/eligrey/FileSaver.js/, not included)
I suspect we probably want to use the Promise api here, since publicly exposed async calls are all using that (callbacks are used for some internal stuff to make testing easier --- the test mocks don't really deal with nested promises very well --- and for internal stuff it can help performance a bit too, but promises are a nice public API)