Extract interfaces for Section, Event, and Observation

Update all core classes to use these interfaces
Moved Event.getInternalId() to Run.getId(Event)
Merge branch 'features/extract-interfaces' into develop