Interfaces for a ViewModel base class

Some of it originates from Caliburn Micro.