Optional dependencies

This adds optional dependencies to the mod loader. They can be specified by appending a question mark to a line in depends.txt, like so:
```
wool?
```
The implication is that the mod can use functionality from the wool mod and would therefore like to be loaded after wool, but it can also work without it.

Alternatively optional dependencies can be given in optdepends.txt (without question marks). This is purely a compatibility feature and should be removed after some time. The idea is that mods wouldn't want to use the '?' syntax in depends.txt initially, because it would break on older but supported versions of the core. Once mods phase out support for those versions, they can switch to the '?' syntax and at some point the core can stop looking for optdepends.txt.

The patch also adds checks for duplicated mod names. The exact behaviour is documented here: http://dev.minetest.net/Mod_name_conflicts#Future_versions_of_Minetest