64 Use two fields instead of one for the article status

Trello: https://trello.com/c/sujffv4M

---

Spawned from a larger piece of work which adds versioning to the article model.  Having two seperate fields paves the way for more complicated states, such as "The article is published but has since been changed by the author".

This branch also dusts off the test framework so all tests pass. Tests have been added for when the article state is changed from the CMS.  The other tests are mostly useless, and the ones which are useful have issues and need work (e.g. not mocking external services).