Handle `Variant::Get` for types not supported by the `Variant`

Previously, if you called `Get` on a `Variant` with a type that is not
in the list of types supported by the `Variant`, that would attempt to
look up the type at index `-1` and could spin the compiler into an
endless loop.

Instead, check for the case where you are attempting to get a type from
the `Variant` not listed in its templat arguments. In this case, instead
of producing a compiler error, produce a runtime error. Although this
increases the possibility that a bad compile path is being generated, it
simplifies creating templated code that produces cases we don't care
5 jobs for variant-get-unsupported-type
Status Name Job ID Coverage
passed cdash-buildbot

running vtk-m-dragnipur-osx-shared-debug+32bit_ids+64bit_coords+clang+tbb


running vtk-m-dragnipur-osx-static-release+64bit_coords+clang+tbb


running vtk-m-osheim-windows-shared-debug+ninja-vs-2017+tbb


running vtk-m-osheim-windows-static-release+ninja-vs-2017+tbb