Paul Davis was responsible for introducing almost all of this.
Implements open, save and dirtiness. No error checking, no menu items disabling.