Print module

This is a first version for review. I propose it a bit earlier than before as the gtk3 is now merged it is harder for me to keep this branch up-to-date with master.

As proposed by houz I'll be happy to get help to migrate this piece of code to Gtk3.

I'll be also happy to get comment from review to straighten the code where needed.

Thanks.
i think you can actually give the struct the same name and the same tag. why the leading underscore?