I added an opam (https://opam.ocaml.org) lister.
I used the opam binary available on most platforms rather than re-implementing opam in python.
As an opam instance can be one of many URL kinds (see http://opam.ocaml.org/doc/Manual.html#URLs) I decided to create virtual URL of the form: opam+INSTANCEURL/package/CURRENTPACKAGE ; in the loader, I'll just have to split this url, get the instance and the package name, query opam for all versions and fetch the tarballs. It should also ease the testing as I'll be able to create a fake opam repository and just use: opam+file://pathtotherepo/packages/.
I'm not familiar with Python so any code style comment is appreciated. Especially the part relative to error handling, I just made a ugly print and exit for now...