Added dartdoc & improved separation of concerns

This change adds dartdoc comments and makes _generateHash return a String. This way _generateHash is solely responsible for generating and returning the Hash. As a result of that setting the image url is now moved to the constructor.