Gneeric popup implementation #2

* Note; some widgets will likely stop working after this commit. This is
because the current implementation demands that each optiontype should
have an implementation for each phase of the popup functions. If one
breaks, the code breaks while executing (which is good).
* Temportarily abusing the logo widget in the framework for testing
purposes