Refactoring, positioning fix and pushing towards #364

I did only a very superficial test and it "works for me".

I can set the display_n setting to -1 (using gconf-editor) and have the window appear on my primary monitor.