Retrieve docs

Closes #3 

Hey @devcritter if you are able to, a review would be good.
Hey @devcritter, so, I had to go this way due to on demand documents. We need a way for certain document IDs to be mapped to a particular handler so that we know when we receive a request for an on demand document we should call the CDA content handler. It can then generate the document on the fly. We have to do it this way cos the only information that we have when a document in retrieved is its ID. I'm not sure how this can be better handled.

The interface module still doesn't have to know about any of the registered handlers, it just stores a doc id mapped to a particular class (in this case the class is almost being used as an ID for the handler). It still relies on the content handler to fetch and instantiate the handler.

I agree there is a bit of a code smell here and I don't like it either. But, I can't think of a better way. Do you have any suggestions?