Better XHR error handling

refs #733 

If an ajax request fails, there's a pretty good chance it will also not have valid JSON in its `responseText` property. This PR makes the Prose UI handle that case a bit better.

An error message describing in more detail why the request failed is still visible via dev tools.

This is useful, for example, if you're connected to one of those horrible wifi networks that redirects every request to their login page unless you've already logged in.