Major Refactor

* Hasher now saves a cache of its hashed files to disk when destroyed,
  and reads it at construction time.

* Implement JsonParser. Drops old HTML parser.

** Drop Image, use horizon_post/Post from github.com/talisein/Horizon

* JsonParser, Downloader, and Hasher refactored to have no observable
  state. Uses callbacks instead of signals.

* Manager reworked to have no state. Next task is implement callbacks
  instead of signals.

* Implement CallbackDispatcher. Convenience class to deliver callbacks
  on the GMainLoop regardless of what thread the work is done in.

* Implement XmlReader/XmlWriter. Taken from github.com/talisein/mal-gtk