Listenable Components implementation
- API users can now listen for updates from some components
- tests for listenable components
- some minor bug fixes
- extremely (!) important formatting fixes (tabs, spaces etc.)