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>

Reviewed-by: Neil Roberts <neil@linux.intel.com>
cogl-gst: add missing Cogl introspection dependency

Reviewed-by: Neil Roberts <neil@linux.intel.com>
cogl-gtype: add missing gtype macros in intermediate macros

Reviewed-by: Neil Roberts <neil@linux.intel.com>
example: add emscripten files to dist

Reviewed-by: Neil Roberts <neil@linux.intel.com>
examples: add gjs example

Reviewed-by: Neil Roberts <neil@linux.intel.com>
onscreen: make closure types visible to introspection

Reviewed-by: Neil Roberts <neil@linux.intel.com>