move gmi set function decls inside extern C
apf now uses the gmi interface

This is a rather important change,
making gmi a dependency of apf.
The rationale is that gmi is an
abstract model interface so it
does not lock apf into an implementation
and apf::Mesh has already been duplicating
this interface.
As gmi gets more powerful, the other choice
would be to continue adding duplicate functions
to apf::Mesh.

It is cleaner to have one model interface
and reduce the size apf::Mesh by delegating
model calls to gmi.
The switch will be made gradually, starting
with this commit.