Platform version overrides

Platform names can include version information. The platform string is treated as a dependency string.

Internally, LuaRocks maintains a list of generic platform types, and an additional canonical name for the current system. The function `luarocks.cfg.is_platform` will compare a string with the generic types regardless of system version. The function `luarocks.deps.match_platform` compares a string to the generic and canonical names with version numbers.

The version of a system is determined with `uname -r` on Unix-like platforms, and `VER` on Windows. It is set as the variable `LUAROCKS_UNAME_R` in the site config upon installation.

TODO: Possible use an external program to read the WIndows version because `VER` may not be reliable. The Windows build should set a variable WINVER that can be optionally used by rockspecs to set a compiler macro.