Added im-request-spinner, which can show a loading message while a promise completes.

The expectation is that if the promise is rejected, the data will be of the form
{ error: message }