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.
You never free the allocated memory. Also it's probably better to use std::string and let it manage memory for you. You can split it using class Strfnd, defined in `src/strfnd.h`; it's in Finnish but we have to live with that.