Let the client set min/max width/height

Also, let the client show/hide the application.
Add methods for saving/restoring window geometry