Fixed double messages issue.

This extends https://github.com/learningequality/ka-lite/pull/1750 by:
* Handling more types of messages returned from the API
* Making `doRequest` add callbacks for do the common API message handling.
* Extending `doRequest` to accept request options, so all API requests can use it
* Shift all API requests to use `doRequest`
* Make API message handling more consistent by making all API requests return success (and error) messages, then remove front-end-based success messaging where it existed.

**Testing:**
* Tested in video download/delete/cancel, language pack download/delete, and new user management panel. 

**Notes:**
* I reviewed @ruimalherio's code previously and no additional testing is needed for those code changes; feel free to focus on the code changes I've made for review & testing.