Search for subgames using $MINETEST_SUBGAME_PATH.

Using an environment variable allows the subgame search paths to be defined by the user, rather than fixed at compile time.  This patch will search the paths contained within the environment variable `MINETEST_SUBGAME_PATH` for subgames before searching the share and home directories.  When this environment variable is not set, Minetest behaves as it has prior to this patch.

One particular use-case for this patch is to allow Minetest to be played on the GNU system running the [GNU Guix](https://gnu.org/s/guix) package manager, where applications are installed on a per-user basis and packaged files are immutable.  In other words, there's no `/usr/share/minetest/games` directory to write to.  The necessary search path is dependent upon which user is running Minetest and where their "profile" (installed packages) is located.
From Linux man pages:

> As typically implemented, getenv() returns a pointer to a string within the environment list.  The caller must take care not to modify this string, since that would change the environment of the process.

From FreeBSD man pages:

>      The getenv() function obtains the current value of	the environment	vari-
>     able, name.  The application should not modify the	string pointed to by
>     the getenv() function.


`strtok` (which is non-reentrant btw) obviously modifies the string