Pull operations are now possible.

Changing the remote repository after construction is still volatile and
therefore not recommended. To be fixed.
Added some additional comments to make the code nicer.

Specifically, all functions now have @param comments.