Extract topic status update

Continuing a bit with `Topic` by taking out the next most complex method according to [Code Climate](https://codeclimate.com/github/discourse/discourse/Topic#method-complexity), `Topic#update_status`

The existing test coverage is pretty good. One [test was added](https://github.com/chrishunt/discourse/commit/be234a2bc739ea8a42d41072d2821136725c6be8) to make sure that the locale key is generated correctly.

This PR does not change any behavior. The goal is just make the method behavior easier to understand. This shaves about 40 points off the `Topic` complexity score in Code Climate.