Merge trunk
Lifecycle iterartion-0: Implement delegates and registration
Lifecycle iteration-0: Add transitions and move old state code to new helpers.
Merge trunk
* First take at API refactoring
* Lifecycle implementation ported to new API
* Helper files added
Merge trunk
* Separate application/application_ui definitions
* Separate private and public headers, transition old C API to private helpers only
* Refactor lifecycle code for new API
* Refactor Session, Surface, Properties, Application and Platform routines
Merge trunk
Cleanup rogue code
* Remove stale files
* Stop unnecessary inheritance
* Implement new API
* Refactor namespaces, classes and type to match new API
* Add bridge definitions for new API calls
* Lay the foundations for lifecycle iteration 0
Make HintFlags an unsigned int
Fix lacking virtual
Add get_id virtual for surfaces
Change tests to use new API
Cleanup headers, add Copyright notices
Final cleanup stage.h comments
Sync session.h
merge1
Merge 2