Make linkStacktrace() return an object

Instead of returning the result directly, we return an object containing
the result. This allows us to add further return information later (for
example for #2).
Rate limit handling

* stop searching when the rate limit was hit
* inform the user that the rate limit was hit (including when it will
  reset)
* allow the user to enter their own auth token

Closes #2.