allowing user-defined test data path
refactoring the gmi struct hierarchy

the addition of topology in gmi_mesh
made it unsuitable for use as the base
struct for null and analytic. hence,
a suitable gmi_base struct was extracted.
dont use FORCE on CACHE variables

in CMake, apparently using FORCE means
the user cannot override the variable at all.
I don't know what the use case for that is,
but its certainly not here.
add "./" to all exes in the test script

This was necessary to get the tests to run
with my mpich install.
Hopefully it will also run on avatar.