Add support for underscore characters 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", ... },
    ...
}