Add element-type support to GListModel

GListModel is an interface for creating typed, list-like containers. The
data stored is GObject instances, but it's useful to be able to annotate
the actual type, for both documentation and code generation purposes.

Fixes: #328
Status Job ID Name Coverage
  Build
passed #592318
fedora-x86_64-meson

00:02:42

passed #592320
fedora-x86_64-python3.5

00:02:05

passed #592319
fedora-x86_64-subprojects

00:03:29

passed #592321
win32
msys2-mingw32-meson

00:03:26

passed #592322
win32
vs2017-x64-meson

00:04:56