testsuite: Check the list of loaded modules after a test

Add a ->modules_loaded member to struct test, which is a comma-separated
list of modules that should be present after the test finishes. Both
missing and excess modules cause an error.
testsuite: Add test for modprobe --force

There is no check if the correct flags are passed to finit_module, but
at least we cover the respective code path in kmod.
testsuite: Do not provide finit_module(2) on older kernels

If the test's uname -r is less that 3.8, return -ENOSYS from
finit_module(), so that the fallback is tested.
Add some tests for kernels without finit_module(2)
libkmod-module: Simplify kmod_module_insert_module()

Store the file and elf pointer in the kmod_module structure and have it
freed together with the module.
libkmod-config,depmod: Accept special files as configuration files, too

If we can open it and read it, it's good enough for us. Otherwise, we
cannot use -C /dev/null to skip the system configuration for instance:

$ ./tools/modprobe -C /dev/null -c
libkmod: ERROR libkmod/libkmod-config.c:821 conf_files_list: unsupported
file mode /dev/null: 0x21b6
...
libkmod-config: Only match dot before '=' in /proc/cmdline

Otherwise, we also parse strings like

  BOOT_IMAGE=/boot/vmlinuz-3.12.12-57.g5f654cf-default

In practice, this is not a problem, because there is no module named
BOOT_IMAGE=/boot/vmlinuz-3. It just disturbs in modprobe -c output.