First cut of observer pattern mixin library

@vikasgarghb @Pickra @loghinr @drewkimrey  Mind taking a look at this?

It's a pretty simple observer pattern mixin similar to what we've got internally. Pulling the functionality out into a separate (public) project. Once it looks good, we can replace our internal version with this.
Can define a `mainFile` here.