Add support for underscores in Config names.

This patch allows use of underscores in Config platform, toolset,
variant, and subvariant names. This is primarily useful for the
platform names when needing to support a wide variety of cross-
compilation targets or for autoconf integration, but it can't
hurt for toolset, variant, or subvariant names. It makes it easier
to simply convert a canonical autoconf host/target triplet from
hyphen to underscore form and use it as the platform identifier.

For example, in your tundra.lua:

Configs = {
    Config { Name = "arm_linux_gnu-gcc", ... },
    Config { Name = "i686_linux_gnu-gcc", ... },
    Config { Name = "x86_64_linux_gnu-gcc", ... },
    Config { Name = "powerpc_linux_gnu-gcc", ... },
    Config { Name = "powerpc64_linux_gnu-gcc", ... },
    Config { Name = "i686_linux_gnu-clang", ... },
    Config { Name = "x86_64_linux_gnu-clang", ... },
    Config { Name = "arm_linux_uclibc-gcc", ... },
    Config { Name = "i686_linux_uclibc-gcc", ... },
    Config { Name = "x86_64_linux_uclibc-gcc", ... },
    Config { Name = "arm_linux_androideabi-gcc", ... },
    ...
}
fix warning
Add support for winsdk8 (vs 11.0 / vs2012)

Some file paths were changed with visual studio 2012 (version 11.0),
and the new winsdk8:

- Traditional windows API are found under a "UM" (user-mode) directory.
- WinRT (new APIs) are found under a "WINRT" directory
- Others in "SHARED" directory

We import the UM headers for now. WinRT support should come probably with
its own toolset variant.
make logic more readable thanks to short circuit
Merge pull request #136 from uucidl/F-MsvcWinsdkFor2012

msvc-winsdk support for winsdk8 and visual studio 2012 (11.0)
Merge pull request #135 from upcaste/master

Add support for underscore characters in Config names