Recommend at most one <input type=submit> parameter.
Clean up AwfulHTTPClient API.

* Methods take model objects where reasonable. A couple methods can take user
  input (sending a PM and locating a post by ID) which should not require
  creating possibly invalid model objects.
* Callbacks are passed created model objects instead of IDs.
* Fix retain cycles in a few callbacks.
* Replying to a thread gives more specific error messages depending on whether
  the thread is obviously closed.