Decouple ArticleReader and Article

ArticleReader no longer knows about the attributes of an Article. It
instead passes it a hash, allows it to instantiate then asks if
then newly instantiated article is valid.

cc/ @gjvis