Introduce HAVE_FEATURE_GLTF to enable/disable gltf related code

When it is a release build then enable it only on Windows and
Linux.

Change-Id: I7c462aeb75e6ab60eeaa0fa42ca7853a6369b742
(cherry picked from commit fe70101856332663f600df144b39d2638b3d0570)
Make glTF support an experimental feature

Change-Id: I75e69ba1acafbab8362536f02f4d39a8fc2deed1
(cherry picked from commit 653bac184f579524bc25a9f40281763a736ae6fd)
Change glTF mime type: {application -> model}/vnd.gltf+json

There is no an accepted mime type for glTF models yet, so
follow collada's mime type: model/vnd.collada+xml.

Change-Id: I1e23a95dbb0caea781dade819f8e08235cb5c1dc
(cherry picked from commit e8fcf1153fd93b4f8155da0d571935125367a59b)
3D model insertion: display extensions in the filter selector

Change-Id: I8c7b7a311cbd38058540d3462b0497ebe3d28a9e
(cherry picked from commit ca3a1e1c6bc8ef25d717566a093c73e07fe6461c)
Extract kmz and collada converter code to a seperate function

Plus fix some problems related to temp files.
e.g. kmz converter was creating temp files next
to the input file.

Change-Id: Ib3f367fe1c4ef3cb25f5ca1c3d06b2dde78c5e45
(cherry picked from commit 573ced4087f46788a8596fb89c657d3427be4bf8)
glTF: Avoid segmentation fault when one of the input files can't be loaded

libgltf: Parser releases the glTFHandle, but it was not connected to
the corresponding handle by RenderScene::initScene. So when rendering
stopped during file loading because of missing file, Parser's handle
member was an uninitialized pointer so it crashed by calling release
method.

(cherry picked from commit 6904c836b203acbe87a85446a0c59bfbed359240)

Change-Id: I80099195341766f474143014d5949703d47a6fd8
kmz2gltf: Use LO's ZipFileAccess to unzip kmz

Instead of this hacky collada2gltf patch.

Change-Id: I9f15c4ee1c9ea1a1a64116691b12b696c1d63ac5
(cherry picked from commit 3d300f1e86624b989863639626c6220e20a5b3fb)