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 seem to have added some as well, since my editor doesn't have per-directory settings and I often switch between soft and hard tabs, 2 and 4 spaces, for different projects.

The linter is supposed to cover this, but I guess it doesn't, so I'll add some extra linting rules after this gets checked in as part of the cleanup. I wouldn't worry about fixing it in this CL