Registers gtypes for all public objects and structs

This adds much more comprehensive support for gobject-introspection
based bindings by registering all objects as fundamental types that
inherit from CoglObject, and all structs as boxed types.

Co-Author: Robert Bragg <robert@linux.intel.com>
cogl-gst: add missing Cogl introspection dependency
cogl-gtype: add missing gtype macros in intermediate macros
example: add emscripten files to dist
examples: add gjs example
onscreen: make closure types visible to introspection