Fix Protected Events when inheriting from BaseClass.

This allows subscription to protected events outside of the class but does not successfully fire the event.  When subscribing in the Inheriting class events will fire correctly.  Ideally an error would be raised when adding in wrong context but it currently does not.
Add tests for accessing protected events from subclass