Added in the ability to raise property changed based on the calling prop...

I've also added a perhaps nicer way of setting properties. We can now do the following

   private string _myProp;
   public string MyProp
   {
         get { return _myProp; }
         set { SetProperty(ref _myProp, value);}
   }

Should make VM's a bit tidier.